【解锁技能】学会Python条件语句的终极指南!


【解锁技能】学会Python条件语句的终极指南!

前言

🏠个人主页:欢迎访问 沐风晓月的博客

🧑个人简介:大家好,我是沐风晓月,毕业于双一流院校计算机专业,是一名热爱分享的阿里云社区专家博主。
我喜欢探索新技术,研究创新应用,以实战经验为主,总结并分享我在学习和工作中的心得体会。
💕座右铭:先努力成长自己,再帮助更多的人,和我一起努力,让生活更加美好吧!
💕欢迎大家:这里是我的CSDN博客,一个分享知识的平台。
💕 如果你也热爱技术,想了解最新的IT趋势,想获取实用的学习资料,欢迎来访,三连支持,有问题私信我哦!让我们一起探索无限可能!😘

一. python条件语句的介绍

1.1 什么是条件语句

Python的条件语句是一种编程结构,用于根据条件的真假来控制程序执行的流程。它们通常用于对特定条件执行不同的代码块。

python中为什么会有条件语句?其实编程语言和我们用的汉语,英语异曲同,当一种表达满足不了需求的时候,肯定会考虑用其他的方式来表述。

比如我们常见的逻辑运算符:

如比较运算符(例如等于,不等于,大于,小于等)和布尔运算符(例如与、或、非等)。

一旦出现这些运算符的时候代表可能有不同的选择,比如大于的时候怎么办,小于的时候又该怎么办等。

而条件语句就是用来承接不同条件下执行不同代码快的设定。

例如,当满足某个条件时,程序可以执行一段代码,否则可以执行另一段代码。这使得程序可以根据不同的情况采取不同的行动,从而实现更加智能和适应性的功能。

Python中最常见的条件语句是if语句,它通常由if、elif和else关键字组成。if语句用于测试一个条件,如果条件为真,就执行紧跟在它后面的代码块,否则执行elif或者else语句块。通过这些条件语句,Python程序可以在不同的情况下执行不同的代码,从而实现更加灵活和智能的程序控制。

Python中有两种条件语句:if语句和if…else语句

1.2 条件语句的语法

if 条件:
    执行语句1
    执行语句2
    ...

如果条件成立,则执行相应的语句块。如果条件不成立,则跳过语句块并继续执行程序。

if 条件:
    执行语句1
    执行语句2
    ...
else:
    执行语句3
    执行语句4
    ...

如果条件成立,则执行第一个语句块。如果条件不成立,则执行第二个语句块。

1.3 关于内置函数bool()

Python一切皆对象,所有对象都有一个布尔值,想要获得布尔值需要一个内置函数bool()

bool()函数用于将给定的值转换为布尔值,如果值为True,则返回True,否则返回False。

在Python中,有许多值可以被解释为False,如数字0、空字符串、空列表、空字典和None等。除此之外,所有其他值都被解释为True。

例如: 以下对象的布尔值为False

我们来测试下看看:

#测试对象的布尔值
print(bool(False))
print(bool(0))
print(bool(0.0))
print(bool(None))
print(bool(""))
print(bool([])) #空列表
print(bool(())) #空元祖
print(bool(tuple()))#空元组
print(bool(dict())) #空字典
print(bool(set()))  #空元组

执行的结果全部为 false

其他关于boo()的用法:

# 布尔值为 True
print(bool(1))       # True
print(bool("hello")) # True
print(bool([1, 2]))  # True

# 布尔值为 False
print(bool(0))       # False
print(bool(""))      # False
print(bool([]))      # False
print(bool(None))    # False

在上面的代码案例中,我们传递了不同类型的值到bool()函数中,并打印了函数的返回值。

我们可以看到,在第一个和第二个打印语句中,bool()函数返回True,因为它们是非空的整数和字符串。

在第三个打印语句中,bool()函数返回True,因为它的参数是非空列表。

在后面的打印语句中,bool()函数返回False,因为它们的参数是可以被解释为False的值,例如空字符串、空列表、数字0和None。

二. 分支语句之单分支

Python的单分支语句是if语句的最基本形式,它的语法如下:

if expression:
    statement(s)

其中,expression是一个表达式,它的值会被解释为True或False。如果expression的值为True,则执行statement(s),否则跳过这些语句.

需要注意以下几点:

  1. 在if语句中,expression后面必须加上冒号(:),否则会报语法错误。

  2. statement(s)必须缩进一个固定数量的空格或制表符,通常是4个空格或1个制表符。这个缩进是必需的,因为它表明哪些语句属于if语句的范围内。如果不缩进或缩进不正确,程序将无法执行或执行错误的代码块。

  3. expression的结果必须是布尔值(True或False)。如果表达式的结果是其他类型的值(例如整数或字符串),Python会自动将其转换为布尔值。通常情况下,非零数字和非空字符串会被解释为True,而零和空字符串会被解释为False。

案例一: 写一个单分支语句判断是否年满18岁

age = 18
if age >= 18:
    print("你已经成年了,可以去网吧!")

注释:
在这个例子中,age的值为18,所以age >= 18表达式的结果为True。因此,print()函数会被执行,并输出一条消息。如果age的值小于18,print()函数将不会被执行,因为if语句的条件不满足。

案例二: 写一个简易取款程序,判断取款余额是否充足

money=1000 #余额
s=int(input("请输入取款金额:"))
#判断余额是否充足
if money>=s:
    money=money-s
    print("取款成功,余额为:",money)

注释:
首先,我们定义了一个名为money的变量,并给它赋值1000。接着,我们使用input()函数获取用户输入的取款金额,并将其转换为整数类型(使用int()函数)并赋值给s变量。

在代码的下一行,我们使用注释来解释代码的作用。注释以#字符开头,表示该行后面的内容是注释,而不是Python代码。注释用于帮助程序员理解代码的作用和设计思路,它们不会被Python解释器执行。

在注释后面,我们使用if语句来判断余额是否足够。如果money的值大于或等于s,则执行if语句后面的代码块,将s从money中减去,并打印一条消息,显示取款成功和剩余的余额。否则,如果money的值小于s,if语句后面的代码块将被跳过,不执行任何操作。

注意,在if语句后面的代码块中,我们使用了print()函数来输出一条包含余额的消息。消息包含一个字符串和一个变量(money),我们使用逗号将它们隔开,这样Python会自动将它们拼接在一起。这个技巧可以用于将字符串和变量合并成一个输出。

输出结果:

【解锁技能】学会Python条件语句的终极指南!

但这里也出现一个问题,当我们的取款金额高于了1000的时候,程序会直接退出:

【解锁技能】学会Python条件语句的终极指南!

如果你想让他有输出,就需要使用多分支语句:

三. 多分支语句

3.1 二分支语句

多分之语句中我们默认包含了二分支语句,所谓的二分之就是只有两个分支

二分支语法如下:

if <condition>:
	<statement>
	<statement>
else:
	<statement>
	<statement>

单分支和二分支最大的不同就是二分支语句多了个else:

我们把上面的简易取款程序再次优化下:

money = 1000 # 余额
s = int(input("请输入取款金额:"))
if money >= s:
    money = money - s
    print("取款成功,余额为:", money)
else:
    print("余额不足,取款失败!")

在这个代码中,我们在if语句后面添加了一个else子句。

如果if语句的条件不满足(即余额小于取款金额),则执行else后面的代码块,打印一条余额不足的消息。

如果if语句的条件满足,则跳过else子句的代码块,直接执行if语句后面的代码块。

这样,我们就用一个二分支语句处理了两种情况:余额充足和余额不足。

我们还可以利用二分支语句更容易的来判断奇偶性:

#从键盘录入一个整数,判断奇数还是偶数
num=int(input("请输入一个整数: "))
if num%2==0:
    print(num,"是一个偶数")

else:
    print(num,"是一个奇数")

在上面的代码中,首先,我们使用input()函数从键盘获取一个整数,并使用int()函数将其转换为整数类型,并赋值给变量num。

接下来,我们使用if语句来判断num是否为偶数。如果num可以被2整除,即num % 2 == 0,则执行if语句后面的代码块,打印一条消息,显示num是偶数。

否则,如果num不能被2整除,即num % 2 != 0,if语句后面的代码块将被跳过,执行else语句后面的代码块,打印一条消息,显示num是奇数。

这个程序中使用了一个取模运算符%,它返回除法的余数。如果num % 2的结果为0,说明num可以被2整除,即是一个偶数,否则num不能被2整除,即是一个奇数。

我们来看看测试结果:
【解锁技能】学会Python条件语句的终极指南!

3.2 多分支语句

if多分支由if-elif-else组成,其中elif相当于else if,同时它可以使用多个if的嵌套。具体语法如下所示:

if condition1:
    statement1
elif condition2:
    statement2
elif condition3:
    statement3
...
else:
    statementN


在上述语句中,if是必须的,elif和else是可选的。

condition1是一个表达式,如果它的结果为True,那么将执行statement1语句。如果condition1的结果为False,那么将测试下一个条件condition2。

如果condition2的结果为True,将执行statement2,否则测试下一个条件condition3。

这个过程一直持续到找到一个条件的结果为True,或者没有条件为True,此时将执行else语句后面的statementN。

案例一: 写一个成绩等级查询

'''
90-100 A
80-89  B
70-79 C
60-69 D
0-59 E


'''
num = int(input("please input:"))
print(num)
if num >= 90:
    print('A Class')
elif num >= 80:
    print('B Class')
elif num >= 70:
    print('C Class')
elif num >=60:
    print('D Class')
elif num>0 and num<60:
    print('No Pass')

else:
    print("对不起你的成绩不在有效范围内")

注释:

首先,我们使用input()函数从键盘获取一个整数,并使用int()函数将其转换为整数类型,并赋值给变量num。

接下来,我们使用多分支语句来判断输入的num属于哪个成绩等级范围。

如果num大于或等于90,即num >= 90,则执行第一个条件if语句后面的代码块,输出”A Class”。
如果num大于或等于80,即num >= 80,则执行第二个条件elif语句后面的代码块,输出”B Class”。

依此类推,如果num属于70-79的范围,输出”C Class”;

如果num属于60-69的范围,输出”D Class”;如果num属于0-59的范围,输出”No Pass”。

最后,如果num小于等于0或大于100,则执行else语句后面的代码块,输出一条消息,显示输入的成绩不在有效范围内。

案例二:增加异常判断,在用户输入非规定的数值时候报出异常

在这个代码中我们其实也可以使用try… except 来捕获用户输入的无效的情况,当用户输入的不是整数类型的时候,就爆出 valueError异常。

我们在except块中处理这个异常,并提示用户重新输入。

代码如下:

try:
    num = int(input("请输入一个有效的成绩:"))
    if num < 0 or num > 100:
        print("请输入0到100之间的整数!")
    elif num >= 90:
        print('A Class')
    elif num >= 80:
        print('B Class')
    elif num >= 70:
        print('C Class')
    elif num >=60:
        print('D Class')
    else:
        print('E Class')
except ValueError:
    print("输入的不是有效的整数!")

这里如果用户输入的不是0到100的整数,就说明后面的判断已经没有意义了,所以先验证是不是0到100的整数。

也就是我们的第一个条件: 我们将第一个条件if num < 0 or num > 100:

我们输入一个0-100之外的整数来看看:

【解锁技能】学会Python条件语句的终极指南!

案例三: 多个判断条件的应用

由于Python不支持switch语句,所以多个条件判断,只能用elif来实现,如果判断需要多个条件需同时判断时,可以:

# 判断值是否在小于0或大于10
num = 10
if num < 0 or num > 10:    
    print('hello')
else:
    print('undefine')
# 输出结果: undefine


# 判断值是否在0~5或者10~15之间
num = 8
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):    
    print('hello')
else:
    print('undefine')

3.3 嵌套循环

所谓的嵌套循环,顾名思义就是在循环中还嵌套了循环:

案例一: 购物结算程序

购物结算程序,根据用户是否为会员以及购买金额的不同,给出不同的折扣。

代码的流程如下:

  1. 从用户输入中获取是否为会员的信息以及购物金额的信息。
  2. 判断用户是否为会员,如果是会员则进入下一个判断;如果不是会员则根据购物金额是否满足满减条件给出折扣价并输出。
  3. 判断购物金额是否满足满减条件,如果满足则给出相应的折扣;如果不满足则给出默认的折扣(即不打折)。
  4. 计算折扣价并输出。
answer = input("你是会员吗?y/n")
money = int(input('请输入你的购物金额:'))

if answer == 'y':
    if money >= 200:
        discount = 0.8
    elif money > 100:
        discount = 0.9
    else:
        discount = 1.0
    pay_money = money * discount
    print('您本次购物的原价为:{}元,折扣价为:{}元'.format(money, pay_money))
else:
    print("您不是会员")
    if money >= 500:
        discount = 0.9
    else:
        discount = 1.0
    pay_money = money * discount
    print('您本次购物的原价为:{}元,折扣价为:{}元'.format(money, pay_money))

在这段代码中,我们将每个输出内容的字符串都用format()方法格式化输出,我们将两个if语句中计算折扣的部分合并在一起,并在每个if语句之外计算折扣价,避免代码的重复

执行结果:

【解锁技能】学会Python条件语句的终极指南!

总结

【解锁技能】学会Python条件语句的终极指南!

👍 【解锁技能】学会Python条件语句的终极指南!

⭐️ 【解锁技能】学会Python条件语句的终极指南!

✏️ 【解锁技能】学会Python条件语句的终极指南!

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年3月29日
下一篇 2023年3月29日

相关推荐