python第五章

for 循环

通常用于可迭代对象的遍历
语法结构
for 变量 in 可迭代对象(字符串、列表、元组、字典、迭代器对象、生成器对象、文件对象)
 循环体语句

#遍历一个元组或列表
for x in (10,20,30):
	print(x)
#遍历字符串中的字符
for x in list('nihao001'):
	print(x)
#遍历字典
d={'name':'vivi','age':18,'class':12}
for x in d:
	print(x) #遍历所有key
for x in d.keys():
	print(x) #遍历字典所有的key
for x in d.values():
	print(x) #遍历字典所有的value
for x in d.items():
	print(x) #遍历字典所有的键值对,返回的是元组

range对象

range对象是一个可迭代对象,产生指定的数字序列
语法格式:
range(start, end [,step])
包头不包尾,start默认为0,step默认为1

sum_all=0
sum_even=0 #偶数的和
sum_add=0 #奇数的和
for x in range(101):
	sum_all+=x
	if x%2==0:
		sum_even+=x
	else:
		sum_odd=+x
	x=x+1
print('1-100所有的数字之和',sum_all)
print('1-100所有的偶数之和',sum_even)	
print('1-100所有的奇数之和',sum_odd)

嵌套循环

for x in range(1,6):
	for y in range(1,6):
		print(y,end='\t')
	print() #起到换行的作用

# 打印九九乘法表
for x in range(1,10)
	for y in range(1,x+1)
		print('{0}*{1}={2}'.format(x,y,(x*y)))
	print()

break语句

用于while和佛如循环,用来结束整个循环,当有嵌套循环时break语句只能跳出最近一层的循环

while True:
	a= input('请输入一个字符(数入Q或q结束):')
	if a.upper()=='Q' #将字符串中的小写字母转换成大写字母
		print('循环结束,退出')
		break
	elseprint(a)

continue语句

用于结束本次循环,继续下一次,多个循环嵌套时,用于最近的一次循环

Num=0
salarySum=0
salaties=[]
while True:
	s=input('请输入员工工资(按Q或q结束):')
	if s.upper()=='Q':
		print('录入完成,退出:')
		break
	if float(s)<0 
		continue
	Num+=1
	salarySum+=float(s)
	salaties.append(float(s))
print('员工数{0}'.format(Num))
print('录入薪资:'salaries)
print('平均薪资'.format(salarySum/Num))	

else语句

语法格式:
while 条件表达式:
 循环体
else:
 语句块
for in 可迭代对象:
 循环体
else:
 语句块

salarySum=0
salaries=[]
for x in range(5):
	s=input('请输入您的工资数(数入Q或q退出):')
	if s.upper()=='Q':
		print('您已完成输入')
		break
	if float(s)<0:
		continue
	salarries.append(float(s))
	salarySum+=float(s)
else:
	print('您已全部输入完成')
	print('输入薪资:',salaries)
	print('平均薪资{0}'.format(salarySum/5))

循环代码的优化

①尽量减少循环内不必要的计算
②嵌套循环中,尽量减少内层循环的计算,尽可能向外提
③局部便变量查询较快,所以尽量使用查询变量

zip()并行迭代

对多个序列同时进行并行迭代,zip()函数在最短序列用完时就会停止

name={'vivi','kiki','lily','baly'}
age={18,16,17,19}
job={'teacher','writer','actor'}
#使用zip()进行并行迭代
for a,b,c in zip(name,age,job):
	print('{0}-{1}-{2}'.format(name,age,job))
#用一般的for循环
for i in range(3)
	print('{0}-{1}-{2}'.format(name[i],age[i],job[i]))

总结:推导式创建序列

列表推导式
语法结构:
[表达式 for item in 可迭代对象 if 条件判断]

#列表推导式
y=[x*2 for x in range(1,10), if x%5==0]
print(y)
#使用append()
y=[]
for x in range(1,10)
	if x%5==0:
		y.append(x*2)
print(y)
#二者结果一样

字典推导式
语法结构:
{key_expression:value_expression for 表达式 in 可迭代对象}

text='i love twitter'
dic={a:text.count(c) for c in text}
print(dic)
#将文本中每一个字母出现多少次表达出来

集合推导式
语法结构:
{表达式 for item in 可迭代对象 if 条件判断}

生成器推导式(生成元组)
(表达式 for item in 可迭代对象 if 条件判断)
注意:
返回的不是元组对象,而是一个生成器推导式
<genertor object at 0x00000000002BD3048>

a=(x for x in range(5))
print(tuple(a))#有结果
print(tuple(a))#第二次无结果
#也可以用for来遍历可迭代对象,和上面一样的效果
for y in a
	print(y)

函数用法和底层分析

函数简介

函数的基本概念(function)
可重用的程序代码块,要注重函数代码的一致性,完成一种功能并反复调用

函数的分类
①内置函数
str(), list(), sum()等等
②标准库函数
import turtle
import math
math.floor()
③第三方库函数
④用户自定义函数

函数的定义和调用

定义
语法格式:
def 函数名([参数列表]):
‘’'文档字符串‘’‘
函数体 /若干语句
要点:
1,使用del来定义函数,后接空格和函数名:
  python执行del时会创建一个函数对象,并绑定到函数变量名上
2,参数列表
  圆括号内时形式参数,有多个参数时用逗号隔开
  无参数也要保留圆括号
  形式参数不需要声明类型,也不需要指定函数的返回值类型
  实参列表要与形参列表一一对应,多一个或者少一个都会返回error
 

形参和实参

def printMax(a,b) #形式参数,要符合标识符命名规则
	'''实现两个数的比较,并返回最大值'''
	if a>b:
		print(a,'较大值')
	if a<b:
		print(b,'较大值') #函数在这里就结束了
print(10,30) #使用函数,这里的10,30为实际参数

返回值
return返回值要点:
 如果函数中包含return语句,则结束函数执行并返回值
 如果函数中没有return语句,则返回None值
 要返回多个值,使用列表、元组、字典、集合将多个值‘存起来’即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值