一、空语句
a = int(input("请输入一个整数:")) if a == 1: print("hello")a = int(input("请输入一个整数:")) if a != 1: pass else: print("hello")其中 pass 表示空语句,并不会对程序的执行有任何影响,只是占个位置,保持 Python 语法格式符合要求。
如果代码写作:
a = int(input("请输入一个整数:")) if a != 1: else: print("hello")程序是不符合 Python 语法的,会直接报错
要使用空语句进行占位
二、循环语句
有些操作是需要反复执行的。这种就需要使用循环。
2.1 while 循环
(1)基本语法格式
while 条件: 循环体- 条件为真,则执行循环体代码
- 条件为假,则结束循环
(2)代码示例:打印 1-10 的整数
num = 1 while num <= 10: print(num) num += 1- 循环变量的初始值
- 循环的判定条件
- 循环变量的更新语句
num = 1 while num <= 10: print(num)缺少更新循环变量的语句,会一直循环下去,除非手动结束程序运行
死循环很多时候是 bug,也有些时候不是 bug
(3)代码示例:计算 1-100 的和
sum = 0 num = 1 while num <= 100: sum += num num += 1 print(sum)(4)代码示例:计算 5 的阶乘
result = 1 n = 1 while n <= 5: result *= n n += 1 print(result)(5)代码示例: 求 1! + 2! + 3! + 4! + 5!
num = 1 sum = 0 while num <= 5: factorResult = 1 i = 1 while i <= num: factorResult *= i i += 1 sum += factorResult num += 1 print(sum)这个程序用到了两重循环。也就是在循环语句中也可以套循环
2.2 for 循环
(1)基本语法格式
for 循环变量 in 可迭代对象: 循环体注意:
- python 的 for 和其他语言不同, 没有 "初始化语句", "循环条件判定语句", "循环变量更新语句", 而是更加简单
- 所谓的 "可迭代对象", 指的是 "内部包含多个元素, 能一个一个把元素取出来的特殊变量"
(2)代码示例1:打印 1-10
for i in range(1, 11): print(i)- range 函数是一个内建函数,能够生成一个可迭代对象。这个可迭代函数中包含了一系列整数,range(beg,end)=>[beg, end),前闭后开的区间,代码示例中生成的范围是 [1, 11), 也就是 [1, 10]
代码示例2:打印 2, 4, 6, 8, 10
for i in range(2, 12, 2): print(i)- 通过 range 的第三个参数, 可以指定迭代时候的"步长"。也就是一次让循环变量加几。
代码示例3:打印 10-1
for i in range(10, 0, -1): print(i)- range 的步长也可以设定成负数
代码示例4:求 1 - 100 的和
sum = 0 for i in range(1, 101): sum += i print(sum)当前有个内建函数,sum咱们自己定义的变量和内建函数冲突了,虽然不影响运行,但是代码后面就无法使用内建函数sum
鼠标移动到变量名上shift+F6,进行更名(Rename),会自动把全部需要更改的名字全部修改。
更改完后,回车或者点击Refactor
2.3 continue
continue 表示结束这次循环, 进入下次循环
(1)代码示例:模拟吃包子,吃第 3 个包子的时候吃出了一只虫
for i in range(1, 6): if i == 3: continue print(f"吃完第 {i} 个包子")2.4 break
break 表示结束整个循环
(1)代码示例1: 模拟吃包子,吃第 3 个包子的时候吃出了半只虫
for i in range(1, 6): if i == 3: break print(f"吃完第 {i} 个包子")代码示例2: 输入若干个数字,求平均值。使用 "分号" 作为结尾
sum = 0 count = 0 while True: num = input("请输入数字:") if num == ';': #约定当用户输入 ;时候循环结束 break num = float(num) sum += num count += 1 print(sum / count)看到while true不一定就是死循环,得看循环体里面是否有break