Python基础(第五节)

for循环

语法格式:

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

举例
1、元组的遍历

for x in (1,2,3):
    print(x*2)
    
for y in ("abcd"):
    print(y)

2、字典的遍历

d = {"name":"wyj","age":22,"job":"student"}
for x in d:
    print(x)
for x in d.values():
    print(x)
for x in d.items():
    print(x)

3、range对象
range对象是一个迭代器对象,用来产生指定范围的数字序列,格式为:

range([start,]end[,step])
    
for x in range(5):
    print(x)

嵌套循环

1、九九乘法表

for x in range(1,10):
for y in range(1,x+1):
print("{0}{1}={2}".format(x,y,(xy)),end=’\t’)
print()

break语句
1、break语句用来结束整个循环
2、当有嵌套循环时,只能跳出最近的循环

while True:
    a = input("请输入一个字符,输入q时退出")
    if a == "q":
        print('结束')
        break
    else:
        print(a)

continue语句
1、continue语句用于结束本次循环,继续下一次
2、多个循环嵌套时,continue也是应用于最近的一层循环

录入员工工资

sum = 0
count = 0
while True:
    salary = input("录入员工工资(输入q或Q结束)")
    if salary.upper() == 'Q':    #转大写字母
        break
    if float(salary)<0:    #转浮点数
        print("请重新输入")
        continue
    sum += float(salary)
    count += 1

print("员工数:{}".format(count))    #{}是占位符,里边最好不要加东西
print("总薪资:{}".format(sum))
print("平均薪资:{}".format(sum/count))

else语句
如果for、while语句没有被break中断,则会执行else语句,否则不执行
语法格式:

while 条件表达式:
    循环体
else:
    语句块

循环代码优化
1、尽量减少循环内部不必要的计算
2、嵌套循环中,尽量减少内层循环的计算,尽可能向外提
3、局部变量查询较快,尽量使用局部变量

其他优化手段
1、连接多个字符串,使用join()而不是+
2、列表进行元素插入和删除,尽量在列表尾部

使用zip()并行迭代

names = ["a","b","c",'d']
ages = [20,21,22,23]
jobs = ["teacher","stundet",'programmer']
for name,age,job in zip(names,ages,jobs):
        print("{0}***{1}***{2}".format(name,age,job))

推导式创建序列
推导式是典型的Python风格

1、列表推导式
语法格式:

[表达式 for item in 可迭代对象]
或
[表达式 for item in 可迭代对象 if 条件判断]
>>> [x for x in range(1,5)]
[1, 2, 3, 4]
>>> [x*2 for x in range(1,5)]
[2, 4, 6, 8]
>>> [x for x in range(1,20) if x%5 == 0]
[5, 10, 15]
>>> [a for a in "abcde"]
['a', 'b', 'c', 'd', 'e']
>>> cells = [(row,col) for row in range (1,3) for col in range (1,3)]
>>> print(cells)
[(1, 1), (1, 2), (2, 1), (2, 2)]

2、字典推导式
语法格式:

{key_expression : value_expression for 表达式 in 可迭代对象}
>>> my_text = 'i love you,i love wyj,i love hit'
>>> char_count = {c:my_text.count(c) for c in my_text}
>>> char_count
{'i': 4, ' ': 6, 'l': 3, 'o': 4, 'v': 3, 'e': 3, 'y': 2, 'u': 1, ',': 2, 'w': 1, 'j': 1, 'h': 1, 't': 1}

3、集合推导式
语法格式:

{key_expression for 表达式 in 可迭代对象}

4、生成器推导式(生成元组)
一个生成器只能运行一次,第一次迭代可以得到数据,第二次机迭代发现数据已经没有了

gnt = (x for x in range(100)if x %9==0)
for x in gnt:
    print(x,end=' ')

循环语句的练习
1、画不同颜色同心圆

import turtle
t = turtle.Pen()
my_colors = ('red','green','yellow','black','blue','orange')
t.speed(1000)
for a in range(200):
    t.color(my_colors[a%6])    #对4取余可以循环用颜色
    t.circle(10+3*a)
    t.penup()
    t.goto(0,-3*(a+1))
    t.pendown()

turtle.done()    #程序执行后,窗口仍在

2、画棋盘

import turtle
t = turtle.Pen()
a = 10
t.speed(100)

for m in range(a):
    t.penup()
    t.goto(10*m,0)
    t.pendown()
    t.goto(10*m,10*(a-1))
    
for m in range(a):
    t.penup()
    t.goto(0,10*m)
    t.pendown()
    t.goto(10*(a-1),10*m
    
turtle.done()    #程序执行后,窗口仍在

函数

函数是可重用的程序代码块,代表一个任务或功能

函数的分类
1、内置函数
如str()、list()、len()
2、标准库函数
可以通过import语句导入库
3、第三方库
下载安装后,通过import导入
4、用户自定义函数

函数的定义和调用
1、语法格式:

def 函数名([参数列表]):
    (也就是注释)
    函数体/若干语句

2、参数列表:
①圆括号内是形式参数列表,有多个参数则用逗号隔开
②形式参数不需要声明类型,也不需要指定函数返回值类型
③无参数,也必须保留空的圆括号
④参数列表必须与形参列表一一对应

3、return返回值
①如果函数体中包含return语句,则结束函数执行并返回值
②如果函数体中不包含return语句,则返回None值

>>> def test01():
...     print("*"*10)
...     print("@"*10)
...
>>> test01()
@@@@@@@@@@

形参和实参
1、形参在定义函数时使用
2、在调用函数时,传递的参数是实参

文档字符串
调用 help(函数名.doc) 可以打印输出函数的文档字符串

返回值
1、如果函数体重包含return语句,则①结束函数执行并②返回值
2、如果函数体重不包含return语句,则返回None值
3、要返回多个返回值,使用列表、元组、字典。集合将多个值“存起来”即可

def my_avg(a,b):
    return(a+b)/2
c = my_avg(20,30)
print(c)
print(my_avg(20,30))    #也可以直接用函数

返回多个值:

def test02(x,y,z):
    return[x/10,y/10,z/10]
a = test02(10,20,30)
print(a)
发布了14 篇原创文章 · 获赞 0 · 访问量 388

猜你喜欢

转载自blog.csdn.net/Bro_Jun/article/details/104762655