Python基础_07:条件和循环

本文详细介绍了Python中的条件控制语句,包括if、if...else、if...elif...else的基本概念和语法,以及while和for循环的使用。通过实例展示了如何进行条件判断和循环操作,如计算和、打印九九乘法表,并讨论了如何避免死循环及break和continue的作用。同时对比了while和for循环在不同场景下的适用性。
摘要由CSDN通过智能技术生成

程序执行的三大循序

  • 顺序:从上到下,顺序执行代码
  • 分支:根据条件判断,决定执行代码的分支
  • 循环:让特定代码重复执行

IF控制语句(分支语句、条件判断)

基本概念

  • 条件满足时,执行某项操作
  • 条件不满足,执行另一项操作

语法格式

if:基本语法
if condition:
	expression
other_expression
  • 如果条件condition为True,则执行表达式expression
  • 如果条件condition为False,跳过expression表达式,向下执行另外的表达式other_expression
实例:
age = int(input("请输入您的年龄:"))
if age < 18:
    print("未成年")
print("继续执行")

>>>请输入您的年龄:6    # 输入小于18
未成年
继续执行

>>>请输入您的年龄:33  # 输入大于18
继续执行 #跳过print("未成年")

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 # 输入小于18
未成年

>>>请输入您的年龄:19 # 输入大于18
已成年
实例2:if嵌套
# 安检过程:1.是否有车票,有车票通过 ,无车票不可进入2,刀具超过20cm不允许通过,不超过,安检通过
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语句搭配使用,提高逻辑严谨性
实例:
# 成绩:大于60份及格,70及以上中等,80及以上良好,90及以上优秀,小于60不及格
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循环

  • 只有当条件为假的时候,才会停止循环
  • 循环体内必须存在可更改条件的语句,否则容易进入死循环
  • 死循环与效率问题:
    1. 输入输出的死循环不会有太大的效率问题
    2. 纯计算的死循环会导致严重的效率问题

语法格式(必须要有初始值)

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("{}x{}={}".format(i, j, i*j), end="\t")
        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('循环结束。')
如何避免死循环
  1. 条件不能为常量
  2. 循环体内有一个可更改条件的语句
  3. 与continue和break结合使用
while和for的区别
  • for循环适用于循环次数为已知的,while循环适用于循环次数是未知的
  • for循环是遍历对象,while是满足条件时,才执行循环操作
  • for循环的性能更好
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值