
for s in (10,20,30):
print(s*3)
30
60
90
range 对象
range 对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:
range(start, end [,step])
num = 0
sum_0 =0
sum_1 = 0 #计算奇数和
sum_2 = 0 #计算偶数和
for num in range(101):
sum_0 += num
if (num%2==0):
sum_2 += num
else:
sum_1 += num
num += 1
print(sum_0,sum_1,sum_2)
5050 2500 2550
嵌套循环和综合练习
n=0
for x in range(5):
for y in range(5):
print(x,end="\t")
print()
[ *** 作] 利用嵌套循环打印九九乘法表
for x in range(1,10):
for y in range(x):
print ("{0}*{1}={2}".format(x,y+1,(x*(y+1))),end="\t")
print()
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
r1 = {"name":"高小一","age":"18","salary":"30000","city":"北京"}
r2 = {"name":"高小二","age":"19","salary":"20000","city":"上海"}
r3 = {"name":"高小五","age":"20","salary":"10000","city":"深圳"}
tb = [r1,r2,r3]
for s in tb:
if int(s.get("salary")) > 15000:
print(s)
{'name': '高小一', 'age': '18', 'salary': '30000', 'city': '北京'}
{'name': '高小二', 'age': '19', 'salary': '20000', 'city': '上海'}
遗留问题点: 为什么一定要int(s.get"salary")?
break 语句 break 语句可用于 while 和 for 循环,用来结束整个循环。当有嵌套循环时,break 语句只 能跳出最近一层的循环。 while True: continue 语句 continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最 近的一层循环。 else 语句 while、for 循环可以附带一个 else 语句(可选)。如果 for、while 语句没有被 break 语句 结束,则会执行 else 子句,否则不执行。语法格式如下: while 条件表达式: 循环体 else: 语句块 或者: for 变量 in 可迭代对象: 循环体 else: 语句块 循环代码优化 1. 尽量减少循环内部不必要的计算 2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。 3. 局部变量查询较快,尽量使用局部变量 1. 连接多个字符串,使用 join() 而不使用 + 2. 列表进行元素插入和删除,尽量在列表尾部 *** 作 使用 zip()并行迭代 我们可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止names = ("团子","小团","团团","团砸")
ages = (18,16,20,25)
jobs = ("老师","公务员","警察","职员")
for names,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))
团子--18--老师
小团--16--公务员
团团--20--警察
团砸--25--职员
推导式创建序列
推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,
从而避免冗长的代码。推导式是典型的 Python 风格,会使用它代表你已经超过 Python 初
学者的水平。
列表推导式
列表推导式生成列表对象,语法如下:
[表达式 for item in 可迭代对象 ]
或者:
{表达式 for item in 可迭代对象 if 条件判断}
#列表推导式
x = [y * 2 for y in range(1, 50) if y % 5 == 0]
print(x)
[10, 20, 30, 40, 50, 60, 70, 80, 90]
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)]
字典推导式
字典的推导式生成字典对象,格式如下:
{key_expression : value_expression for 表达式 in 可迭代对象}
my_text = 'i love you, i love dd'
char_count = {c:my_text.count(c) for c in my_text}
print(char_count)
{'i': 2, ' ': 5, 'l': 2, 'o': 3, 'v': 2, 'e': 2, 'y': 1, 'u': 1, ',': 1, 'd': 2} 课下作业
Str = input("请输入一串字符:")
resoult = {} # 定义一个空字典
for i in Str: # 遍历输入的字符串,以键值对的方式存储在字典中
resoult[i] = Str.count(i)
for key in resoult: # 遍历字典,格式化输出结果
print(f'"{key}":{resoult[key]}次')
集合推导式
集合推导式生成集合,和列表推导式的语法格式类似:
{表达式 for item in 可迭代对象 }
或者:
{表达式 for item in 可迭代对象 if 条件判断}
y = {x for x in range(1,100) if x%9==0}
print (y)
{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}
生成器推导式(生成元组)
.【 *** 作】绘制多个同心圆
import turtle
my_colors = ("red","blue","black","yellow","green")
t =turtle.Pen()
t.width(4)
t.speed(10)
for i in range(100):
t.penup()
t.goto(0,-i*10)
t.pendown()
t.color(my_colors[i%len(my_colors)])
t.circle(10+i*10)
turtle.done()
【 *** 作】绘制 18*18 棋盘
import turtle
width = 30
num = 18
x1 = [(-400,400),(-400+width*num,400)]
y1 = [(-400,400),(-400,400-width*num)]
t=turtle.Pen()
t.speed(10)
for i in range(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()
t.hideturtle()
第 5 章 函数用法和底层分析 1. 一个程序由一个个任务组成;函数就是代表一个任务或者一个功能。 2. 函数是代码复用的通用机制 函数的定义和调用 Python 中,定义函数的语法如下: def 函数名 ([参数列表]) : '''文档字符串''' 函数体/若干语句 形参和实参 def printMax(a,b) #a 和 b 称为“形式参数 printMax(10,20) 文档字符串(函数的注释) def print_star(n): '''根据传入的 n,打印多个星号''' print("*"*n) 我们调用 help(函数名.__doc__)可以打印输出函数的文档字符串。 返回值 return 返回值要点: 1. 如果函数体中包含 return 语句,则结束函数执行 并返回值; 2. 如果函数体中不包含 return 语句,则返回 None 值。 3. 要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)