图片来源于turtle库的练习
目录
1. 程序的分支结构
1.1 单分支
1.2 二分支
1.3 多分支
1.4 条件判断
1.5 条件组合
1.6 条件判断及组合
2. 程序的异常处理
如果在语块1执行的过程中出现了异常,程序立即从1中跳出,去执行2,然后继续往下执行。如果1执行正常结束,则程序继续往下执行,不会执行2
常见的异常有:
- 不合适的转换,例如 int(“abc”) int(“23.34”) float(“abc”)
- 输入已经结束(已经没有输入数据了)后,还执行input()
- 除法除数为0
- 整数和字符串相加
- 列表下标越界(比如3个元素的列表用到了下标4)
3. 程序的循环结构
3.1 遍历循环
range(1, 6, 2)中,1,6是遍历的范围(1~5,不包含6),2是步长
扩展:
- range(0)是空的,是遍历不出值的;
- range(2, 2)这样的也是空的;
fi是文件名称。
3.2 无限循环
实例:
输入三个整数,求它们的最小公倍数
解法:枚举,一个个试
s = input().split() #这样写,输入的三个数就会放到列表中
x,y,z = int(s[0], int(s[1]), int(s[2]))
n = 1
while True:
if n % x == 0 and n % y == 0 and n % z == 0:
print(n)
break
n = n + 1
或
s = input().split() #这样写,输入的三个数就会放到列表中
x,y,z = int(s[0], int(s[1]), int(s[2]))
n = 1
while not(n % x == 0 and n % y == 0 and n % z == 0):
n += 1
print(n)
优化:
s = input().split() #这样写,输入的三个数就会放到列表中
x,y,z = int(s[0], int(s[1]), int(s[2]))
n = m = max(x, y, z) #挑出三个数中最大的一个数,从最大的开始试
while True:
if n % x == 0 and n % y == 0 and n % z == 0:
print(n)
break
n += m
扩展:
用while语句和异常处理进行输入
输入若干行,每行若干整数,求所有整数的最大值
s = input()
lst = s.split()
maxV = int(lst[0])
try:
while True:
lst = s.split()
for x in lst:
maxV = max(maxV, int(x))
s = input() #如果输入数据没了还执行input,会产生异常
except:
pass #pass语句啥都不干
print(maxV)
注意:Windows中Ctrl+Z,Pycharm中Ctrl+D,告诉程序没有输入了
3.3 循环控制保留字
扩展:
- break跳出for的循环时,for的else语句也不会执行;
- break跳出while的循环时,while的else语句也不会执行;
3.4 循环的高级用法
4. 参考资料
【1】慕课网,北京理工大学,嵩天教授,《Python语言程序设计》声明:笔记中截图、部分代码来自该课程课件,非博主原创
【2】Python123:在线编程网站
【3】菜鸟教程
【4】慕课网,北大,郭玮老师,《实用Python程序设计》