文章目录
1. for循环和可迭代对象遍历
1.1 形式
for i in 可迭代对象:
循环体语句
for x in (10,20,30):
print(x*30)
1.2 嵌套循环
打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f'{i}x{j}={i*j}',end='\t')
print()
1.3 break & continue 语句
break语句可用于while和for循环,用来结束整个循环。
continue语句用于结束本次循环,继续下一次。
while True:
a = input('请输入一个字符')
if a.upper() == 'Q':
print('结束')
break
else:
print(a)
1.4 else语句
while、for循环可以附带一个else语句(可选)。如果for、while语句没有被break语句结束,则会执行else语句,否则不执行。
2. zip()并行迭代
我们可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列"用完"时就会停止。
names = ('alex','john','peter','stephan')
ages = (18,26,20,25)
jobs = ('teacher','engineer','doctor')
for name,age,job in zip(names,ages,jobs):
print('{}-{}-{}'.format(name,age,job))
3. 推导式
3.1 列表推导式
[表达式 for item in 可迭代对象]
[表达式 for item in 可迭代对象 if 判断条件]
a = [x**2 for x in range(1,5)]
print(a)
# [1, 4, 9, 16]
a = [x**2 for x in range(1,10) if x%2 ==0]
print(a)
# [4, 16, 36, 64]
可以使用两个循环
cells =[(row,col) for row in range(1,10) for col in range(1,10)]
for cell in cells:
print(cell)
3.2 字典推导式
{key_expression : value_expression for 表达式 in 可迭代对象}
类似于列表推导式,字典推导式也可以增加if条件判断、多个for循环。
- 练习:统计字符出现的次数
my_text = 'I love my country, I love my family'
dic = {c:my_text.count(c) for c in my_text}
print(dic)
3.3 生成器推导式
生成器是可迭代的对象,只能使用一次
gnt = (x for x in range(4))
for i in gnt:
print(i)
for i in gnt:
print(i)
#第二次打印结果为空
4. 函数
4.1 函数的结构
l1 = [1, 2, 3]
def new_len():
count = 0
for i in l1:
count += 1
print(count)
new_len()
'''
def 关键字: 定义一个函数。紧跟一个空格。
new_len函数名:与变量命名规范一致。一定要具有可描述性。
():结构需要,传参使用。
: 分割符。
tab键:四个空格。缩进。函数体
'''
4.2 形参和实参
形参,函数定义时使用
实参,即“实际参数”,调用时使用
def comp(a,b):
if a>b:
print(a)
else:
print(b)
comp(1,20)
4.3 返回值
-
第一个作用
-
结束函数(与while/for循环的break类似),但return只能在函数中用。
-
第二个作用
-
函数中没有return或者只写一个return,函数的执行者得到的是None
-
函数中return后面是单个值,函数的执行者得到的是这个值(不改变值的类型
-
函数中return后面是多个值, 函数的执行者得到的是一个元组
def add(a,b):
print('计算两个数的和:{}+{} = {}'.format(a,b,a+b))
return a+b
c = add(10,20) #计算两个数的和:10+20 = 30
print(c) #30