文章目录
- 1.嵌套循环
- 2.嵌套循环练习
- 3.break语句
- 4.continue语句
- 5.else语句
- 6.循环代码优化
- 7.使用zip()并行迭代
- 8.推导式创建序列
- 9.综合练习
- 10.函数用法和底层分析
1.嵌套循环
for x in range(5):
for y in range(5):
print(x,end="\t")
print() #起到换行的作用
2.嵌套循环练习
九九乘法表
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() #换行
例题2:
tb = []
a1 = dict(name="汤小一",age=18,salary=30000,city="北京")
a2 = dict(name="汤小二",age=19,salary=40000,city="南京")
a3 = dict(name="汤小六",age=20,salary=50000,city="上海")
tb = [a1,a2,a3]
for i in tb:
if i.get("salary")>35000:
print(i)
3.break语句
#用于while和for循环,用于结束整个循环。当有嵌套循环时,break语句只能跳出最近一层的循环
# a = input()
4.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("员工人数{0}".format((empnum)))
print("录入薪资:",salarys)
print("平均薪资{0}".format(salarysum/empnum))
5.else语句
while、for循环都可以附带一个else语句。如果for、while语句没有被break语句结束,则会执行else句,否则不执行。
语法格式:
while 条件表达式:
循环体
else:
语句块
6.循环代码优化
1.尽量减少循环内部不必要的计算。
2.嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
3.局部变量查询较快,尽量使用局部变量
7.使用zip()并行迭代
测试并行迭代:
for i in [1,2,3,4,5,6]:
print(i)
8.推导式创建序列
列表推导式
列表推导式,语法:
[表达式 for item in 可迭代对象]或者:{表达式 for item in 可迭代对象 if 条件判断}
x = [i for i in range(1,5)]
print(x)
x = [i*2 for i in range(1,5)]
print(x)
x = [i for i in range(1,100) if i%5==0]
print(x)
?
字典推导式
格式:
{key_expression: value_expression for 表达式 in 可迭代对象}
?测试代码:
my_text = "i love python,i love learning,i love gaoshu"
char_count = {c:my_text.count(c) for c in my_text}
print(char_count)
集合推导式
格式:
{表达式 for item in 可迭代对象}或者:{表达式 for item in 可迭代对象 if 条件判断}
实验代码:?
x = {i for i in range(1,100) if i%5==0}
print(x)
生成器推导式(生成元组)
一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了。
skt = (x for x in range(4))
print(tuple(skt))
print(tuple(skt)) #再看的时候就为空了
for x in skt: #skt是生成器对象,生成器是可迭代对象
print(x,end="")
print(tuple(skt))
9.综合练习
画圆环
import turtle
t = turtle.Pen()
my_colors = ("red","green","yellow","black")
t.width(5)
t.speed(10)
for i in range(10): #0 1 2 3 4 5 6 7 8 9
t.penup()
t.goto(0,-i*10) #0,-10,-20,-30,-40
t.pendown()
t.color(my_colors[i%len(my_colors)]) #对my_colors取余数
t.circle(15+i*10) #15,25,35,45,55
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()
?
10.函数用法和底层分析
函数是可重用的程序代码块。函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。
一致性指的是,只要修改函数的代码,则所有调用该函数的地方都可以得到体现。
#函数的分类
1.内置函数()
2.标准库函数
3.第三方库函数
4.用户自定义函数
格式:
def 函数名 ([参数列表]):
"文档字符串" #对函数的说明,先定义再调用
def skt1000():
print("*"*5)
print("@"*5)
skt1000()
总结:学习语言就是要勤加练习!!!!!
|