python基础学习第五天———笔记
作者:互联网
for循环和可迭代对象遍历
可迭代对象:
python包含以下几种可迭代对象:
1.序列。包含:字符串、列表、元组
2.字典
3.迭代对象
4.生成器函数
sum_all=0
sum_odd=0
sum_even=0
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 m in range(1,10):
for n in range(1,m+1):
print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")
print()
运行结果:
break语句
break语句可用于while和for循环,用来结束整个循环
【操作】使用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':
print("录入成功,退出")
break
if float(s)<0:
continue
empNum +=1
salarys.append(float(s))
salarySum+=float(s)
print("录入薪资:",salarys)
运行结果:
循环代码优化
1.尽量减少循环内部不必要的计算
2.嵌套循环中,尽量减少内层循环的计算,尽可能向外提
3.局部变量查询较快,尽量使用局部变量
其他优化手段:
1.连接多个字符串,使用join()而不用+
2.列表进行元素插入和删除,尽量在列表尾部操作
使用zip()并行迭代
可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止
#测试zip()并行迭代
names=("小A","小B","小C","小D")
ages=(18,19,20,22)
citys=("北京","上海","广州","深圳")
for name,age,city in zip(names,ages,citys):
print("{0}--{1}--{2}".format(name,age,city))
运行结果:
推导式
- 列表推导式
先执行for循环,再给前面的x赋值
y=[x*2 for x in range(1,5)]
print(y)
运行结果:[2,4,6,8]
- 字典推导式
my_text="abcdefg,higklmn,abcdkelei"
char_count={c:my_text.count(c) for c in my_text}
print(char_count)
运行结果:
- 集合推导式
b={x for x in range(1,100) if x%7==0}
print(b)
运行结果:
- 生成器推导式(生成元组)
一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了
gnt=(x for x in range(4))
print(tuple(gnt))
print(tuple(gnt))
运行结果:
综合练习
- 绘制不同颜色的多个同心圆
import turtle
t=turtle.Pen()
my_colors=("blue","red","yellow","green")
t.width(4)
t.speed(10)
for i in range(5):
t.penup()
t.goto(0,-i*10)
t.pendown()
t.color(my_colors[i%len(my_colors)])
t.circle(20+i*10)
turtle.done()
运行结果:
- 绘制一个棋盘
import turtle
width=30
num=18
x1 = [(-300,300),(-300+width*num,300)]
y1 = [(-300,300),(-300,300-width*num)]
t=turtle.Pen()
t.speed(10)
for i in range(0,19):
t.penup()
t.goto(x1[0][0],x1[0][1]-30*i)
t.pendown()
t.goto(x1[1][0],x1[1][1]-30*i)
for i in range(0,19):
t.penup()
t.goto(y1[0][0]+30*i,y1[0][1])
t.pendown()
t.goto(y1[1][0]+30*i,y1[1][1])
turtle.done()
运行结果:
函数用法和底层分析
函数是可重用的程序代码块。函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。
python函数的分类
1.内置函数
2.标准库函数
3.第三方库函数
4.用户自定义函数
函数的定义和调用
#测试函数的定义和调用
def test01():
print("**"*5)
print("^^^"*4)
for i in range(10):
test01()
在python中,一切都是对象,函数一定要先定义后调用
形参和实参
参数列表
1.圆括号内是形式参数列表,有多个参数则使用逗号隔开
2.形式参数不需要声明类型,也不需要知道函数返回值类型
3.无参数,也必须保留空的圆括号
4.实参列表必须与形参列表一一对应
用三个引号引起来的字符串为函数注释
def printMax(a,b):
'''用于比较两个数的大小,打印较大值'''
if a>b:
print(a,'较大值')
else:
print(b,'较大值')
printMax(10,20)
printMax(30,5)
help(printMax.__doc__)
运行结果:
返回值
return返回值要点:
1.如果函数体中包含return语句,则结束函数执行并返回值。
2.如果函数体中不包含return语句,则返回None值。
3.要返回多个返回值,使用方法、元组、字典、集合将多个值“存起来”即可。
def add(a,b):
print("计算两数之和:{0}".format(a+b))
return a+b
c=add(20,60)
运行结果:
标签:函数,迭代,python,sum,笔记,range,循环,print,第五天 来源: https://blog.csdn.net/weixin_45649258/article/details/122609692