程序执行的三大循序
- 顺序:从上到下,顺序执行代码
- 分支:根据条件判断,决定执行代码的分支
- 循环:让特定代码重复执行
IF控制语句(分支语句、条件判断)
基本概念
- 条件满足时,执行某项操作
- 条件不满足,执行另一项操作
语法格式
if:基本语法
if condition:
expression
other_expression
- 如果条件condition为True,则执行表达式expression
- 如果条件condition为False,跳过expression表达式,向下执行另外的表达式other_expression
实例:
age = int(input("请输入您的年龄:"))
if age < 18:
print("未成年")
print("继续执行")
>>>请输入您的年龄:6
未成年
继续执行
>>>请输入您的年龄:33
继续执行
if…else:基本语法
if condition:
True_expressions
else:
False_expressions
other_expression
- 如果condition为True,将会执行True_expressions里面的语句
- 如果condition为False,将会执行False_expressions里面的语句
- 最后再执行other_expression里面的语句内容
实例1:
age = int(input("请输入您的年龄:"))
if age < 18:
print("未成年")
else:
print("已成年")
>>>请输入您的年龄:17
未成年
>>>请输入您的年龄:19
已成年
实例2:if嵌套
has_ticker = bool(input("请确认是否购买了车票(True或False):"))
kinfe_length = float(input("请输入刀具长度:"))
if has_ticker:
print("有车票,请进入检查")
if kinfe_length > 20:
print("携带刀具超过20cm,请上交")
else:
print("安检通过")
else:
print("没有车票,请前往购票大厅购票")
if…elif…else:基本语法
if condition1:
expression1
elif condition2:
expression2
elif condition3:
expression3
else:
expression
- 书写多个elif进行条件判断,elif必须写在if后面
- 如果有一个条件成立,执行相应代码后,跳过整个if语句
- 如果条件都不成立,则执行else语句内容,退出整个if语句
- else需要和if语句搭配使用,提高逻辑严谨性
实例:
score = float(input("请输入成绩:"))
if 60 <= score < 70:
print("及格")
elif 70 <= score < 80:
print("中等")
elif 80 <= score < 90:
print("良好")
elif score >= 90:
print("优秀")
else:
print("不及格")
While循环
- 只有当条件为假的时候,才会停止循环
- 循环体内必须存在可更改条件的语句,否则容易进入死循环
- 死循环与效率问题:
- 输入输出的死循环不会有太大的效率问题
- 纯计算的死循环会导致严重的效率问题
语法格式(必须要有初始值)
while <条件>:
<语句1>
else:
<语句2>
实例:
num = 0
while num <= 4:
print(f"当前数字为{num}继续执行")
num += 1
else:
print("执行完毕!")
实例2:计算1-100的和
num = 1
count_num = 0
while num <= 100:
count_num = count_num + num
num += 1
print(count_num)
>>> 5050
实例3:计算0-100偶数的和
num = 1
count_num = 0
while num <= 100:
if num % 2 == 0:
count_num = count_num + num
num += 1
print(count_num)
>>> 2550
实例4:计算0-100奇数的和
num = 1
count_num = 0
while num <= 100:
if num % 2 != 0:
count_num = count_num + num
num += 1
print(count_num)
>>> 2500
实例5:打印九九乘法表
i = 1
while i <= 9:
j = 0
while j < i:
j += 1
print(f"{i}x{j}={i*j}", end="\t")
print()
i += 1
>>>
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
实例6:打印九九乘法表二
i = 9
while i >= 1:
j = 9
while j >= i:
print("{}x{}={}".format(j, i, i*j), end="\t")
j -= 1
print()
i -= 1
>>>
9x9=81
9x8=72 8x8=64
9x7=63 8x7=56 7x7=49
9x6=54 8x6=48 7x6=42 6x6=36
9x5=45 8x5=40 7x5=35 6x5=30 5x5=25
9x4=36 8x4=32 7x4=28 6x4=24 5x4=20 4x4=16
9x3=27 8x3=24 7x3=21 6x3=18 5x3=15 4x3=12 3x3=9
9x2=18 8x2=16 7x2=14 6x2=12 5x2=10 4x2=8 3x2=6 2x2=4
9x1=9 8x1=8 7x1=7 6x1=6 5x1=5 4x1=4 3x1=3 2x1=2 1x1=1
for循环
语法格式
- for 循环可以遍历任何序列类型(str、list、 tuple)和字典
- 直接遍历字典,默认遍历的是字典的key
for 循环变量 in range(start,end,[,step]):
<执行语句1>
else:
<执行语句2>
range(start,end,[,step])函数
- start参数:为计数的起始值,默认为0
- stop参数:为计数的结束值,只能取到前一位
- step参数:为计数的步长,默认为1
- 如果range只有一个参数,即为结束值
for i in range(1, 11, 2):
print(i, end=" ")
>>> 1 3 5 7 9
实例1:
my_love = ["apple", "pear", "banana", "strawberry"]
for i in my_love:
print(i)
else:
print("执行完毕!")
>>>
apple
pear
banana
strawberry
执行完毕!
实例2:打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print("{}x{}={}".format(j, i, i*j), end="\t")
print()
>>>
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
break和continue
- break:结束当前循环,不再执行当前循环所有代码
- continue:结束本次循环,进入下一次循环遍历
实例:break计算1-100前20的和
num = 1
count_num = 0
while num <= 100:
if num == 20:
break
count_num = count_num + num
num += 1
print(count_num)
>>> 190
实例:continue
n = 5
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print('循环结束。')
如何避免死循环
- 条件不能为常量
- 循环体内有一个可更改条件的语句
- 与continue和break结合使用
while和for的区别
- for循环适用于循环次数为已知的,while循环适用于循环次数是未知的
- for循环是遍历对象,while是满足条件时,才执行循环操作
- for循环的性能更好