条件语句
- Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 在Python中没有switch – case语句。
s = 7
if s < 10: # 不要忘记冒号
print('a') # 缩进要对齐
else: # 不要忘记冒号
print('b') # 缩进要对齐
#a
0.1+0.2==0.3 #结果False
(0.1+0.2-0.3)<1e-5 #判断两个浮点数是否相等的写法,True
三元操作符
语法:x if 条件 else y
x,y = 8,5
z = x if x < y else y # 三元操作符
z
#5
循环语句
while循环
n = 1
while n < 10: #不要忘记冒号
print(n) # 缩进要对齐
n+=1
无限循环
- while语句中的代码块会重复执行,直到判断条件不合格。
- 若要无限循环,将判断条件改为True。
- 无限循环运行时用Ctrl+C来中断。
n = 1
while True: #不要忘记冒号
print(n) # 缩进要对齐
n+=1
n = 1
while n==1: # 表达式永远为 true
m = int(input('请输入一个数字:'))
print('输出数字:',m)
for循环
for i in 'engineer': #字符串
print(i)
#逐行输出:e n g i n e e r
company = ['Baidu','Alibaba','Tencent','Huawei'] #列表
for comp in company: # 用comp访问company列表里面的每一个元素
print(comp)
#Baidu
#Alibaba
#Tencent
#Huawei
range()函数
- 三种基本的序列类型:列表、元组和范围(range)对象
- range和列表、元组一样是基础序列
- range类似于列表,是自定制数字范围的列表,里面的元素只能是数字。一般在for循环中。
- range()函数可以生成指定数列,range(n)生成0到n-1的整数序列,range(n,m)生成n到m-1的整数序列,range(n,m,q)生成从n开始,小于m,公差为q的等差数列
- 表示的是左闭右开区间
- 接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型
- range是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素,不支持进行加法拼接与乘法重复。
- range 对象是不可变的等差序列。
- 是可迭代对象,却不是迭代器。
for i in range(9): #range()函数配合for循环实现指定次数循环
print(i+1)
#逐行输出1 2 3 4 5 6 7 8 9
type(range(9))
#range
list(range(9)) #使用range创建一个列表
#[0, 1, 2, 3, 4, 5, 6, 7, 8]
list(range(4,9))
#[4, 5, 6, 7, 8]
list(range(0,9,2))
#[0, 2, 4, 6, 8]
# range()配合len()遍历一个序列的索引
company = ['Baidu','Alibaba','Tencent','Huawei']
for comp in range(len(company)):
print(comp,company[comp])
#0 Baidu
#1 Alibaba
#2 Tencent
#3 Huawei
bb=[4,7,12,15]
for i in range(len(bb)):
bb[i]+=1
bb
#[5, 8, 13, 16]
aa=[4,7,12,15] #简洁写法,完全等效
[n+1 for n in aa]
#[5, 8, 13, 16]
- 以下是for语句的灵活运用
# 1-10之间所有数的平方
[(n+1)**2 for n in range(10)]
#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 1-10之间所有数的平方 构成的字符串列表
[str((n+1)**2) for n in range(10)]
#['1', '4', '9', '16', '25', '36', '49', '64', '81', '100']
list0=['a','b','c','d','e']
['app_%s'%n for n in list0]
#['app_a', 'app_b', 'app_c', 'app_d', 'app_e']
list1=['a','b','c','d','e']
[f'app_{n}' for n in list1]
#['app_a', 'app_b', 'app_c', 'app_d', 'app_e']
list_1 = [1,2,3,4,5]
[n for n in list_1 if n%2==0]
#[2, 4]
[n+1 for n in list_1 if n%2==0]
#[3, 5]
# 字符串中所有以'sv'结尾的
list_2 = ['a','b','c_sv','d','e_sv']
[s for s in list_2 if s.endswith('sv')]
#['c_sv', 'e_sv']
# 取两个list的交集
list_A = [1,3,6,7,32,65,12]
list_B = [2,6,3,5,12]
[i for i in list_A if i in list_B]
#[3, 6, 12]
[m + n for m in 'ABC' for n in 'XYZ']
#['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
break,continue,pass
n = 5
while n > 0:
n-=1
if n ==2:
break
print(n)
print('over')
#4
#3
#over
n = 5
while n > 0:
n-=1
if n ==2:
continue
print(n)
print('over')
#4
#3
#1
#0
#over
- Python pass 是空语句,是为了保持程序结构的完整性。
- pass 不做任何事情,一般用做占位语句。
for i in range(5):
pass
for i in 'Python':
if i == 'o':
pass
print('这是 pass 块')
print('当前字母 :', i)
#当前字母 : P
#当前字母 : y
#当前字母 : t
#当前字母 : h
#这是 pass 块
#当前字母 : o
#当前字母 : n
# 如果定义一个空函数程序会报错,当你没有想好函数的内容是可以用 pass 填充,使程序可以正常运行。
def function():
# 在Python3.x的时候pass可以写或不写
pass