Python 控制语句及函数

1.循环结构

1.1for 循环和可迭代对象遍历

for 循环通常用于可迭代对象的遍历。

# for 循环的语法格式
for 变量 in 可迭代对象: 
    循环体语句
for x in (20,30,40): 
    print(x*3)

1.1.1可迭代对象

Python 包含以下几种可迭代对象:

  1. 序列。包含:字符串、列表、元组
  2. 字典
  3. 迭代器对象(iterator)
  4. 生成器函数(generator)
  5. 文件对象

遍历字符串中的字符

# 字符串遍历
a = 'hello*world'
for i in a:
    print(i)
h
e
l
l
o
*
w
o
r
l
d

遍历列表中的字符

a = ['hello','*','world']
for i in a:
    print(i)
hello
*
world

遍历元组中的字符

# 元组遍历
a = ('hello','*','world')
for i in a:
    print(i)
hello
*
world

遍历字典中的字符

# 字典遍历
# 1.遍历字典所有的 key
a = {'key_1':'hello','key_2':'*','key_3':'world'}
for i in a:
    print(i)
# 2.遍历字典所有的 values
for i in a.values():
    print(i)
# 3.遍历字典所有的 元素(键值对)
for i in a.items():
    print(i)
key_1
key_2
key_3
hello
*
world
('key_1', 'hello')
('key_2', '*')
('key_3', 'world')

1.1.2range 对象

range 对象是一个迭代器对象,用来产生指定范围的数字序列。
格式为: range(start, end [,step])
生成的数值序列从 start 开始到 end 结束(不包含 end)。若没有填写 start,则默认从 0 开始。step 是可选的步长,默认为 1。

# 计算 1-100 之间数字的累加和
sum = 0
for i in range(101):
    sum += i
print(sum)
# 计算 1-100 之间偶数的累加和
for i in range(101):
    if i%2 ==0:
        sum += i
print(sum)
# 计算 1-100 之间偶数的累加和
sum = 0
for i in range(101):
    if i%2 ==0:
        sum += i
print(sum)

# 计算 1-100 之间奇数的累加和
sum = 0
for i in range(101):
    if i%2 !=0:
        sum += i
print(sum)

1.1.2嵌套循环

一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。
打印九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(f'{i}*{j}={i*j}',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	

1.2退出循环

1.2.1break 语句

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

while True:
    num = int(input('猜一个0-10的数字:'))
    if num == 7:
        print('猜对了')
        break
        print('这句话不会被执行')
    print('猜错了,继续')

break 后面的循环语句不会执行

1.2.2continue 语句

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

for i in range(10):
    if i == 3:
        print('3跳过了')
        continue
    print(i)
0
1
2
3跳过了
4
5
6
7
8
9

1.3else 语句

while、for 循环可以附带一个 else 语句(可选)。如果 for、while 语句没有被 break 语句 结束,则会执行 else 子句,否则不执行。

while 条件表达式: 
	循环体 
else:
	语句块 
或者: 
for 变量 in 可迭代对象: 
	循环体 
else:
	语句块

1.4推导式创建序列

推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合, 从而避免冗长的代码。

1.4.1列表推导式

列表推导式生成列表对象,语法如下:
[表达式 for item in 可迭代对象 ]
或者:{表达式 for item in 可迭代对象 if 条件判断}

list1 = [i for i in range(10)]
print(list1)
[0,1,2,3,4,5,6,7,8,9]
# 加if
list2 = [i for i in range(10) if i%2 ==0]
print(list2)
[0,2,4,6,8]
# 嵌套
# [(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
list3 = [(i,j) for i in range(1,3) for j in range(3)]
print(list3)

1.4.2字典推导式

字典的推导式生成字典对象,格式如下:
{key_expression : value_expression for 表达式 in 可迭代对象}

# 合并列表
list1 = ['name','age','gender']
list2 = ['Tom',20,'man']
dict1 = {list1[i]:list2[i] for i in range(len(list1))}
print(dict1)

类似于列表推导式,字典推导也可以增加 if 条件判断、多个 for 循环。

1.4.3集合推导式

集合推导式生成集合,和列表推导式的语法格式类似:
{表达式 for item in 可迭代对象 }
或者:{表达式 for item in 可迭代对象 if 条件判断}

set1 = {i for i in range(10)}
print(set1)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

1.4.4生成器推导式(生成元组)

(x for x in range(1,100) if x%2==0) 
<generator object <genexpr> at 0x0000000002BD3048>
# 提示的是“一个生成器对象”。显然,元组是没有推导式的

一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代数据就没有了。

# 1.用列表和字典存储下表信息,并打印出表中年龄 大于18 的数据
d1 = {'name':'Tom','age':16,'id':111}
d2 = {'name':'小明','age':19,'id':112}
d3 = {'name':'Rose','age':20,'id':113}
list1 = [d1,d2,d3]
for i in list1:
    if i.get('age') > 18:
        print(i)
{'name': '小明', 'age': 19, 'id': 112}
{'name': 'Rose', 'age': 20, 'id': 113}

2.函数

函数是可重用的程序代码块。函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现

2.1函数的基本概念

  1. 一个程序由一个个任务组成;函数就是代表一个任务或者一个功能。
  2. 函数是代码复用的通用机制。

2.2Python 函数的分类

Python 中函数分为如下几类:
1. 内置函数 我们前面使用的 str()、list()、len()等这些都是内置函数,我们可以拿来直接使用。
2. 标准库函数 我们可以通过 import 语句导入库,然后使用其中定义的函数
3. 第三方库函数 Python 社区也提供了很多高质量的库。下载安装这些库后,也是通过 import 语句导入,然后可以使用这些第三方库的函数
4. 用户自定义函数 用户自己定义的函数。

2.3函数的定义和调用

Python 中,定义函数的语法如下:

def 函数名 ([参数列表]) : 
	'''文档字符串''' 
	函数体/若干语句
  1. 我们使用 def 来定义函数,然后就是一个空格和函数名称;
    (1) Python 执行 def 时,会创建一个函数对象,并绑定到函数名变量上。
  2. 参数列表
    (1) 圆括号内是形式参数列表,有多个参数则使用逗号隔开
    (2) 形式参数不需要声明类型,也不需要指定函数返回值类型
    (3) 无参数,也必须保留空的圆括号
    (4) 实参列表必须与形参列表一一对应
  3. return 返回值
    (1) 如果函数体中包含 return 语句,则结束函数执行并返回值;
    (2) 如果函数体中不包含 return 语句,则返回 None 值。
  4. 调用函数之前,必须要先定义函数,即先调用 def 创建函数对象
    (1) 内置函数对象会自动创建
    (2) 标准库和第三方库函数,通过 import 导入模块时,会执行模块中的 def 语句

2.4形参和实参

形式参数是在定义函数时使用的。 形式参数的命名只要符合“标 识符”命名规则即可。
在调用函数时,传递的参数称为“实际参数”,简称“实参”。
请添加图片描述

2.5函数的注释

程序的可读性最重要,一般建议在函数体开始的部分附上函数定义说明,这就是“文档字符 串”,也有人成为“函数的注释”。我们通过三个单引号或者三个双引号来实现,中间可以加入多行文字进行说明。

help(函数名.doc)可以打印输出函数的文档字符串。
请添加图片描述

2.6返回值

  1. 如果函数体中包含 return 语句,则结束函数并执行返回值;
  2. 如果函数体中不包含 return 语句,则返回 None 值。
  3. 要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可。return a ,b默认是元组类型。
    请添加图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值