5、python:for循环、函数

(一)for循环

for 变量 in 可迭代循环对象:
	循环体

可迭代循环对象包括字符串、列表、字典、range对象

for 变量 in 字典 ###键迭代
for 变量 in 字典.keys() ###键迭代
for 变量 in 字典.values() ###值迭代
for 变量 in 字典.items() ###键值对迭代

1.1、range对象
range(start,end,步长),start、步长是可选参数,start默认是0,步长默认是1。

###计算0-100的累加和、奇数和、偶数和
sum=0
sum_odd=0
sum_even=0
for num in range(101):
	sum+=num
	if num%2==1: sum_odd+=num
	else: sum_even+=num
print('累加和{0}、奇数和{1}、偶数和{2}'.format(sum,sum_odd,sum_even))

1.2、嵌套循环:在一个循环体内嵌入另一个循环
打印
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4

for num1 in range(5):
	for num in range(5):
		print(num1 ,end='\t')
	print()

打印九九乘法表

for num1 in range(1,10):
	for num in range(1,10):
		if num1>=num :
			print('{0}*{1}={2}'.format(num1,num,num1*num) ,end='\t')
	print()

1.3、break结束整个循环,如果有嵌套循环,结束最近一层的循环
continue结束循环这一次迭代,进入下一次迭代,当有嵌套循环时,应用于最近一次循环。
else子句:如果循环正常结束就执行,如果通过break结束就不执行。
1.4、循环的优化
1、能移到循环外部计算的尽量移到循环外部
2、能在外层循环计算的不要放到内层循环
3、局部变量查询较快尽量使用局部变量
4、其他优化点:
字符的连接用join替换+
列表插入和删除元素尽量在尾部
1.5、通过zip可以同时遍历多个序列,在最短的序列“用完时”停止遍历。
1.6、推导式是一种快速从一个或多个可迭代对象生成序列的方法,可以结合循环或条件判断
1、列表推导式:[item表达式 for item in 可迭代对象]或[item表达式 for item in 可迭代对象 if 选择表达式]
例如:[(row,col) for row in range(10) for col in range(10) ]
2、字典推导式:{key_expression:value_expression for item in 可迭代对象}或{key:value for item in 可迭代对象 if 选择表达式}
例如:char_count={c:my_text.count(c) for c in my_text}
3、集合推导式:{key for item in 可迭代对象}或{key for item in 可迭代对象 if 选择表达式}
4、生成器推导式(生成元组):(item表达式 for item in 可迭代对象)
或(item表达式 for item in 可迭代对象 if 选择表达式),只能访问一次,第二次访问为空。

###画同心圆
p.speed(0)
p.width(10)
for i in range(5):#0,1,2,3,4
    p.penup()
    p.goto(0,-i*100)##0,-100,-200,-300,-400
    p.pendown()
    p.circle(100+i*100)#100,200,300,400,500
turtle.done()
###画棋盘
import turtle
p=turtle.Pen()
p.speed(0)
ax=-250
r=30
bx=ax+18*r
for i in range(19):####0,1,2,3
    p.penup()
    p.goto(ax+i*r,bx)
   # p.goto(-90+i*10, 90)###-90,-80
    p.pendown()
    p.goto(ax + i * r, bx-18*r)
    #p.goto(-90+i*10, -90)
    p.penup()
    p.goto(bx,ax + i * r)
    #p.goto(90,-90 + i * 10)  ###-90,-80
    p.pendown()
    p.goto(bx-18*r, ax + i * r)
    #p.goto(-90,-90 + i * 10 )
turtle.done()

(二)函数
函数是可复用的程序代码块。程序由任务组成,函数代表一个任务或功能。函数的分类包括内置函数(直接调用)、标准库函数(先import再调用)、第三方库函数(先下载再import再调用)、自定义函数

def 函数名(参数,可为空):
'''这是文档型字符串:函数的注释'''
	函数体
	return子句可选

函数名称要符合标识符的规则,执行def时会生成一个函数对象,将这个对象绑定到函数名变量,函数名变量存储的是函数对象的地址。内置函数会自动创建,标准库、第三方库函数执行import语句是会执行里面的def语句。
def括号内的参数为形参,在定义函数时使用,作用范围仅在函数内部,以逗号隔开,无参数时也要保留括号,无需定义类型,实参是调用函数时实际传入的参数,实参与形参的数量一一对应。return的作用(1)结束时函数执行(2)返回值,没有return返回None,可以返回列表、元组、字典、集合以存储多个返回值。
文档型字符串:函数的注释,通过help(函数名.__doc__)调用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值