本文主要是关于python语句的,包括顺序语句、条件语句、循环语句,他们的正常格式、退出语句还有异常处理
的方法,其中还叙述了for循环的特殊形式:列表推导式。
目录
1.概述
python程序语句是人思考流程在编程上的反映,可以通过程序语句来体现。
简单可以分为:顺序语句、条件语句、循环语句
2.顺序语句
顺序语句是程序运行时按代码的顺序来执行语句。
当我们改变语句的位置时,结果也会对应改变
print('hello world')
print('my name')
print('your name')
print('---------')
print('your name')
print('my name')
print('hello world')
结果是:
hello world
my name
your name
---------
your name
my name
hello world
3.条件语句
条件语句是一种分支语句,可以根据对应条件来执行相应的语句
3.1 简单条件语句
格式有以下两种:
格式一:
if 条件:
语句1
如果条件成立,就执行语句1
格式二:
if 条件:
语句1
else:
语句2
如果条件成立,就执行语句1,条件不成立就执行语句2
#判断s是否为正整数
s = int(input('请输入一个整数'))
if s > 0:
print('这是一个正整数')
print('--------')
s = int(input('请输入一个整数'))
if s > 0:
print('这是一个正整数')
print('------------')
#判断一个数的奇偶性
m = int(input('请输入一个整数'))
if m % 2 ==0:
print('这是一个偶数')
else:
print('这是一个奇数')
print('------------')
m = int(input('请输入一个整数'))
if m % 2 ==0:
print('这是一个偶数')
else:
print('这是一个奇数')
其结果为
请输入一个整数5
这是一个正整数
--------
请输入一个整数-5
------------
请输入一个整数8
这是一个偶数
------------
请输入一个整数7
这是一个奇数
3.2复杂条件语句
复杂条件语句包含更多的分支条件,其格式如下:
if 条件1:
语句1
elif 条件2:
语句2
......
elif 条件n:
语句n
else:
语句n+1
# 输入一个在0到100之间的数,60分以下为不合格,60-80为合格,80-90为优秀,90-100为杰出
score = float(input('请输入0-100之间成绩'))
if score < 0 or score >100:
print('无效成绩')
elif score >= 90:
print('杰出')
elif score >= 80:
print('优秀')
elif score >= 60:
print('合格')
else:
print('不合格')
其结果是:
请输入0-100之间成绩95
杰出
请输入0-100之间成绩86
优秀
请输入0-100之间成绩72
合格
请输入0-100之间成绩45
不合格
4.循环语句
循环语句分为while循环与for循环,代表在达到一定条件前,程序会一直执行。
4.1 while循环的格式:
while 条件:
语句
while循环是当型循环,要有一个循环变量,在循环条件成立时,就一直执行语句,条件不成立就推出循环。
# 计算1-100的和
sum = 0
counter = 1
while counter <=100:
sum = sum + counter
counter+=1
print('1-100的和为:',sum)
其结果是:
1-100的和为: 5050
4.2 for循环格式:
for 循环变量 in 序列:
语句
for循环是一个迭代循环,可以遍历所有数据,自生带有循环变量。
for循环常用的模型为:
range(start,stop,step):start为开始值,stop终止值,step为步长,也就是间隔,range的运行结果不包括stop值
for 循环变量 in range(start,stop,step):
语句
for循环还有一种特殊的格式,叫列表推导式,可以从一个数据序列出发构建另一个数据序列,其格式如下:
[操作语句 for 变量 in 序列 if 条件表达式]
# 计算1-100的和,range()函数值域为左闭右开
sum = 0
for i in range(101):
sum = sum + i
print('1-100的和为:',sum)
其结果是:
1-100的和为: 5050
#使用列表推导式生成list
print([i for i in range(6)])
print([i*2 for i in range(6)])
print('------------')
#包含条件语句的列表推导式
#输出0-10内奇数的两倍
print([i*2 for i in range(11) if i%2==1])
print('------------')
#包含嵌套循环的列表推导式
print([(i,j) for i in range(10) for j in range(10)])
print('------------')
print([(i,j) for i in range(10) if i%2==0 for j in range(10) if j%2==1])
其结果是:
[0, 1, 2, 3, 4, 5]
[0, 2, 4, 6, 8, 10]
------------
[2, 6, 10, 14, 18]
------------
[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9), (5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (6, 8), (6, 9), (7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9), (8, 0), (8, 1), (8, 2), (8, 3), (8, 4), (8, 5), (8, 6), (8, 7), (8, 8), (8, 9), (9, 0), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8), (9, 9)]
------------
[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)]
5.循环的控制
5.1正常的循环
正常的循环包括两种:一种是有限次的循环,一种是符合条件的无限循环
上面while和for循环的都是有限次数的循环
有限次的循环到了次数自然会结束,而无限循环会一直运行下去
# 这就是一个死循环,无限循环
i=1
while i < 10:
print('i')
其结果是重复的’1’,而且不中断程序的话,会一直运行下去
5.2 循环的控制
5.2.1 break控制循环
break用于终止循环语句的执行,一般配合条件语句使用。
i = 0
while i < 10:
print(i)
if i == 5:
break
i+=1
print('-----------')
for i in range(10):
print(i)
if i == 5:
break
print('-----------')
string = 'python'
for i in string:
if i == 'h':
break
else:
print("letter:{}".format(i))
其结果是:
0
1
2
3
4
5
-----------
0
1
2
3
4
5
-----------
letter:p
letter:y
letter:t
5.2.2 continue控制循环
continue用于控制跳出当前循环,执行下一次循环。
i = 0
while i < 10:
i = i + 1
if i%2 == 0:
continue
print(i)
print('-----------')
for i in range(10):
if i%2 == 0:
continue
print(i)
其结果是:
1
3
5
7
9
-----------
1
3
5
7
9
5.2.3 pass控制循环
pass是空语句,用于占位,不执行任何操作,只是保持程序结构完整。一般用于条件语句中。
i = 0
while i < 10:
i = i + 1
if i%2 == 0:
pass
else:
print(i)
print('-----------')
for i in range(10):
if i%2 == 0:
pass
else:
print(i)
其结果是:
1
3
5
7
9
-----------
1
3
5
7
9
6 循环的嵌套
循环与循环的关系一般为并列或嵌套,只有这两种,没有相交。
嵌套是一个循环中包含另一个循环,形成循环嵌套。
# 打印九九乘法表
for i in range(10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,'',end='')
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
7 python异常语句
程序设计应考虑各个方面的事情,避免错误。但有些时候,我们可以控制异常的情况,让语句更加稳定。
例如以下,输入了一个12b,程序无法处理,报错了。
score = float(input('请输入0-100之间成绩'))
if score < 0 or score >100:
print('无效成绩')
elif score >= 90:
print('杰出')
elif score >= 80:
print('优秀')
elif score >= 60:
print('合格')
else:
print('不合格')
其结果是:
请输入0-100之间成绩12b
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_7072/1244601183.py in <module>
----> 1 score = float(input('请输入0-100之间成绩'))
2 if score < 0 or score >100:
3 print('无效成绩')
4 elif score >= 90:
5 print('杰出')
ValueError: could not convert string to float: '12b'
7.1 try except处理异常
try语句格式如下:
try:
语句1
except Exception as err:
语句2
后续语句
其中except后面的语句也可以省略,不关心异常信息的话,可以简化为
try:
语句1
except:
语句2
后续语句
try:
score = float(input('请输入0-100之间成绩'))
if score < 0 or score >100:
print('无效成绩')
elif score >= 90:
print('杰出')
elif score >= 80:
print('优秀')
elif score >= 60:
print('合格')
else:
print('不合格')
except Exception as err:
print(err)
print('end')
其结果是:
请输入0-100之间成绩12a
could not convert string to float: '12a'
end
7.2 用raise语句抛出异常
用raise语句可以抛出自己想要的异常信息,其格式如下:
raise Exception(异常信息)
try:
score = float(input('请输入0-100之间成绩'))
if score < 0 or score >100:
raise Exception('请输入0-100之间的数')
print('无效成绩')
elif score >= 90:
print('杰出')
elif score >= 80:
print('优秀')
elif score >= 60:
print('合格')
else:
print('不合格')
except Exception as err:
print(err)
print('end')
其结果是:
请输入0-100之间成绩-6
请输入0-100之间的数
end