从零开始学Python之循环、数据结构、函数(二)

List列表结构

列表与其他语言的数组相同,列表的数据结构是元素放在中括号[]中,每个元素通过逗号

列表名称=[元素1,元素2.......]

列表中的元素类型可以相同,也可以不同

list1=[12,3,4,5,6,7]
list2['苹果','橘子',1,False]

可以通过访问list列表变量的下表来访问列表中值


list1=['香蕉','苹果']
print(list1[1])  #苹果

列表的元素中还可以是另外一个列表,形成多维列表,通过中括号的组合,可以对多维列表元素进行访问

list1=[["apple","1234"],["grape","5678"]]
print(list1[0]) #["apple","1234"]
print(list[0][1]) #1234

range()函数
创建一个有序的整数列表
range(n)
产生0到n-1的元素值

list1=range(6)

在这里插入图片描述
range(m,n)
产生的元素从m到n-1

range(3,8)

注意如果m的值小于n的值,那么将会产生一个空的列表
在这里插入图片描述
range(m,n,o)
产生元素值为m到 n-1 间隔为o

range(1,5,2)

在这里插入图片描述
其中间隔值也可以为负数,此时M的值必须大于N才行,此时产生从m 到n+1的元素

range(8,3-2)

在这里插入图片描述

高级列表操作

下表为列表操作的常用方法 表中假设 list=[1,2,3,4,5,6],x=[8,9],n,n1,n2,n3 为整数
在这里插入图片描述
在这里插入图片描述

for循环

for循环通常用于指定固定次数的循环


for 循环变量  in  列表 :
	执行代码
list1=['a','b','c','d']
for i in list1:
    print(i,end=",")
    

在这里插入图片描述

案例-计算等差数列的和

sum=0
i=int(input("请输入一个正整数:"))
for a in range(1,i+1):
    sum+=a;

print("1到%d的总和为%d" % (i,sum))

在这里插入图片描述

嵌套循环-九九乘法表


for i in range(1,10):
    for j in range(1,10):
        tmp=i*j
        print("%d*%d= %-2d  " %(i,j,tmp),end=" ")
    print()

在这里插入图片描述

break和continue 命令

break 用于中断退出整个循环
continue 用于退出当前循环,并跳转到下一次循环继续执行

for i in range(5):
    if(i==3):
        break
    print(i,end=",")

在这里插入图片描述

for i in range(8):
    if(i==3):
        continue
    print(i,end=",")

在这里插入图片描述

for…if…else 循环

for…else 循环命令通常会和if及break 命令配合使用

for 变量 in  列表:
	程序块一
	if(条件表达式):
		程序块二
		break
else:
	程序块三
	

判断是一个数是不是质数

n=int(input("请输入一个大于1的整数:"))

if(n==2):
    print("2 是质数")

else:
    for i in range(2,n):
        if(n%i==0):
            print("%d不是质数" % n)
            break
    else:
        print("%d是质数" % n)

while 循环

通常用于执行非固定次数的循环 ,基本语法结构为

while (条件表达式):
	程序代码
n=0
total=0
while (n<100):
    total+=n
    n=n+1

print("最后输出的总数是:% 5d" % (total))

在这里插入图片描述

案例-输入n个人的成绩,当输入成绩为-1时,停止输入并计算总分和平均分

person=0
total=0
score=0
while (score!=-1):
    person+=1
    score=int(input("请输入第 %d 人的成绩:" % person))
    total+=score
average=total/person
print("本班的成绩为:%5d,平均分为:% 5d" % (total,average))

在这里插入图片描述

append 和extend的区别

append()和extend()方法都是将数据添加到列表最后。
append方法的可以接受的参数可以是元素也可以是列表,当参数是列表时,会把这个列表作为一个元素添加到原列表。
在这里插入图片描述
extend方法入参只能是列表,不能是元素,如果入参是列表时,会将该列表中元素逐一加到列表中
在这里插入图片描述

Tuple 元组

元组的结构与列表相同,不同在于元组的元素个数和元素值不能被改变,元组也可以称为是不可变的列表
元组相比列表有如下有点:

  1. 因为内容不可变,执行速度相对较快
  2. 相比列表数据较为安全

元组的格式:
元组名称=(元素1,元素2,元素…)
元组元素都放在小括号中(列表使用中括号)

 tuple1=(1,2,3,4,5)

元组和列表可以相互转换

元组转换为列表:
list(tuple1)
列表转换为元组:
tuple(list1)

字典(dict)

字典是以"键-值"对的形式存放在大括号中,其语法结构为

字典名称={键1:值1,键2:值2}
dict1={"香蕉":20,"苹果":30,"橘子":60}
print(dict1["香蕉"])
#结果是20 

字典的特点

  • 字典中的元素是无序的,因此不能使用通过下标的方式来定位元素,可以通过键值获取对应的值
  • 修改字典中元素值是对“键” 设置新的值

例如:
在这里插入图片描述
删除字典中特定的元素

del  dict1["香蕉"]

删除整个字典变量

del  dict1

字典的常用操作

在这里插入图片描述
字典的keys方法获取字典所有“键”组成的组合,数据类型为dict_keys,values方法获取有字段所有值组成的组合,数据类型为dict_values,如果想要使用这个两个方法中的内容 需要将其转换为列表才能使用

下面示例展现如何获取字典中的内容

dict1={"张三":70,"李四":80,"赵云":77}
dict1["曹操"]=90
dict1["刘备"]=88
listkey=list(dict1.keys())
listvalue=list(dict1.values())
for i in range(len(listkey)):
    print("%s的成绩为:%5d"  % (listkey[i],listvalue[i]))

在这里插入图片描述
下面通过另外一种形式获取字典内容
通过for…in 循环遍历dict1.items()可以不转化列表获取字典内容

dict1={"张三":70,"李四":80,"赵云":77}
dict1["曹操"]=90
dict1["刘备"]=88
listitems=dict1.items()
for name,score in listitems:
    print("%s的成绩为:%3d" % (name,score))
    

函数

创建函数的语法:

def  函数名称(参数1,参数2):
		程序块
		return  返回值

下面是不固定参数函数

def 函数名称(*参数):

def  func1(* args):
	.....

Python 通过元组的方式将所有参数存放在args 元组中,通过操作元组即可获得所有参数

def calsum(*params):
    total=0
    for param in params:
        total+=param
    return total

print("不固定参数函数示例:")
print(calsum(1,2))
print(calsum(1,2,3,4))

系统内置函数

函数功能示例结果
abs(x)返回x的绝对值abs(-5)5
chr(x)返回整数x代表字符char(65)A
float(x)将x转换为浮点数float(“56”)56.0
hex(x)将x转换为16进制数hex(34)0x22
int(x)将x转换为整数int(34.21)34
len(x)返回参数x的元素个数len([1,2,3,4])4
max返回列表中的最大值max(123,12,3)123
min返回列表中的最小值min(1,23)1
oct(x)将x转换为八进制数oct(21)0o25
ord(x)返回x的Unicode编码ord(“啊”)21834
pow返回x的y次方pow(2,3)8
round(x)返回x的四舍六如round(35.9)36
str(x)将x转换为字符串
sorted(x)从小到大排序
sum(x)计算列表元素的总和sum([1,3,5,7])16
type(x)返回对象的数据类型type(“啊啊”)String

导入包

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值