Python基础编程语法(for循环、推导式、函数)
文章目录
for循环
for 变量 in 可迭代对象
循环体语句
for x in (20,30,40):
print(x*3)
for x in "abcdefg":#字符串中的字母
print(x)
for x in range(5):
print(x)
d={'name':'Meidi','age':22,'job':'student'}
for x in d:#默认打印键
print(x)
for x in d.keys():#打印键
print(x)
for x in d.values():#打印值
print(x)
for x in d.items():#打印成对信息
print(x)
sum_all=0
sum_odd=0#100以内的奇数和
sum_even=0#100以内的偶数和
for x in range(101):
sum_all+=x
if x%2==1:
sum_odd+=x
else:
sum_even+=x
print("1-100累加和{0},奇数和{1},偶数和{2}".format(sum_all,sum_odd,sum_even))
嵌套循环
#嵌套循环
for x in range(5):
for y in range(5):
print(x,end="\t")
print()#起到换行的作用
#打印九九乘法表
for m in range(1,10):
for n in range(1,m+1):
print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")
print()
for循环在列表中的应用
#for循环在列表中的应用
tb=[]
r1={"name":"G1","age":18,"salary":30000,"city":"北京"}
r2={"name":"G2","age":19,"salary":20000,"city":"南京"}
r3={"name":"G3","age":20,"salary":10000,"city":"天津"}
tb=[r1,r2,r3]
for x in tb:
if x.get("salary")>15000:
print (x)
break语句
break语句用于while和for循环,用来结束整个循环。当有嵌套循环时,break语句只能跳出最近一层的循环。
#测试break
while True:
a=input("请输入一个字符(输入Q或者q时退出):")
if a=="q" or a=="Q":
print("循环结束,退出")
break
else:
print(a)
continue语句
结束本次循环,进行下一次。多个循环嵌套时,continue也是应用于最近一层循环。
#测试continue;要求输入员工的薪资,若薪资小于0则重新输入。最后打印出录入员工的数量和薪资明细,以及平均工资
empNum=0
salarySum=0
salarys=[]
while True:
s=input("请输入员工的工资(按Q或q结束)")
if s.upper()=='Q':
break
if float(s)<0:
continue
empNum+=1
salarys.append(float(s))
salarySum+=float(s)
print("员工数{0}".format(empNum))
print("录入薪资:",salarys)
print("平均工资{0}".format(salarySum/empNum))
else语句
while、for循环可以附带一个else语句(可选)。如果for、while语句没有被break语句结束,则会执行else子句,否则不执行,语法格式如下:
while 条件表达式:
循环体
else:
语句块
或者:
for 变量 in 可迭代对象:
循环体
else:
语句块
#测试循环中的else语句
salarySum=0
salarys=[]
for i in range(4):
s=input("请输入一共4名员工的薪资(按Q或q中途结束)")
if s.upper()=='Q':
print("录入完成,退出")
break
if float(s)<0:
continue
salarys.append(float(s))
salarySum+=float(s)
else:
print("您已经全部录入4名员工的薪资")
print("录入薪资:",salarys)
print("平均薪资{0}".format(salarySum/4))
循环代码优化
1.尽量减少循环内部不必要的计算。
2.嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
3.局部变量查询较快,尽量使用局部变量。
其他优化手段:
1.连接多个字符串,使用join而不用+
2.列表进行元素插入和删除,尽量在列表尾部操作
import time
start=time.time()
for i in range(10000):
result=[]
for m in range(10000):
result.append(i*1000+m*100)
end=time.time()
print("耗时:{0}".format(end-start))
start2=time.time()
for i in range(1000):
result=[]
c=i*1000#内层循环丢到外层
for m in range(10000):
result.append(c+m*100)
end2=time.time()
print("耗时:{0}".format(end2-start2))
使用zip()并行迭代
我们可以通过zip()对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。
#测试并行迭代
names=("ZZ","MM","DD","AA")
ages=(10,20,30,22)
jobs=("老师","学生","程序员")
for name,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))
for i in range(3):
print("{0}--{1}--{2}".format(names[i],ages[i],jobs[i]))
推导式创建序列
简化代码、效率高
[表达式 for item in 可迭代对象]
{表达式 for item in 可迭代对象 if 条件判断}
#测试推导式
y=[x*2 for x in range(1,5)]
print(y)
#等价于下面
y=[]
for x in range(1,5):
y.append(x*2)
print(y)
#测试推导式
y=[x*2 for x in range(1,50) if x%5==0]
print(y)
y=[]
for x in range(1,50):
if x%5==0:
y.append(x*2)
print(y)
cells=[(row,col) for row in range(1,10) for col in range(1,10)]
print(cells)
字典推导式
{key_expression : value_expression for 表达式 in 可迭代对象}
类似于列表表达式,字典推导也可以增加if条件判断、多个for循环。
#字典推导式
my_text='i love you,i love sxt,i love meidi'
char_count={c:my_text.count(c) for c in my_text}
print(char_count)
集合推导式
{表达式 for item in 可迭代对象}
{表达式 for item in 可迭代对象 if 条件判断}
生成器推导式(生成元组)
#生成器推导式(生成元组),只能一次
gnt=(x for x in range(4))
#print(tuple(gnt))
#print(tuple(gnt))
for x in gnt:#gnt是可迭代对象,生成器是可迭代的对象
print(x,end=",")
print(tuple(gnt))
一个生成器只能用一次
同心圆画法
import turtle
t=turtle.Pen()
my_color=("red","green","yellow","black")
t.width(4)
t.speed(5)#10最快
for i in range(10):#0 1 2 3 4
t.penup()
t.goto(0,-i*10)#0 -100 -200 -300 -400
t.pendown()
t.color(my_color[i%len(my_color)])
t.circle(15+i*10)#100 200 300 400 500
turtle.done()#程序执行完,窗口仍然在
函数
Python函数的分类
- 内置函数
- 标准库函数
- 第三方库函数
- 用户自定义函数
要点:
1.我们使用def来定义函数,然后就是一个空格和函数名称;
(1)Python执行def时,会创建一个函数对象,并绑定到函数名变量上。
2.参数列表
(1)圆括号内是形式参数列表,有多个参数则使用逗号隔开
(2)形式参数不需要声明类型,也不需要指定函数返回值类型
(3)无参数,也必须保留空的圆括号
(4)实参列表必须与形参列表一一对应
3.return返回值
(1)如果函数体中包含return语句,则结束函数执行并返回值。
(2)如果函数体中不包含return语句,则返回None值。
4.调用函数之前,必须要先定义函数,即先调用def创建函数对象
(1)内置函数对象会自动创建
(2)标准库和第三方库函数,通过import导入模块时,会执行模块中的def语句
def printMax(a,b):
"""用于比较两个数的大小,打印较大的值"""
if a>b:
print(a,"较大值")
else:
print(b,"较大值")
printMax(10,20)
printMax(200,300)
help(printMax.__doc__)
返回值
return返回值要点:
1.如果函数体中包含return语句,则结束函数执行并返回值
2.如果函数体中不包含return语句,则返回None值
3.要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可
def add(a,b):
print("计算两个数的和:{0},{1},{2}".format(a,b,(a+b)))
return a+b
def test02():
print("sss")
print("aaa")
return #return两个作用:1.返回值 2.结束函数的执行
print("hello")
def test03(x,y,z):
return [x*10,y*10,z*10]
c=add(30,40)
print(add(30,40)*10)
d=test02()
print(d)
print(test03(4,3,2))
本文地址:https://blog.csdn.net/qq_42881059/article/details/107115630
上一篇: 网站不推广等于白做
下一篇: 你是否真正的理解百度权重呢?