文章目录
- 前言
- 一. python条件语句的介绍
- 1.1 什么是条件语句
- 1.2 条件语句的语法
- 1.3 关于内置函数bool()
- 二. 分支语句之单分支
- 三. 多分支语句
- 3.1 二分支语句
- 3.2 多分支语句
- 3.3 嵌套循环
- 总结
前言
🏠个人主页:欢迎访问 沐风晓月的博客
🧑个人简介:大家好,我是沐风晓月,毕业于双一流院校计算机专业,是一名热爱分享的阿里云社区专家博主。
我喜欢探索新技术,研究创新应用,以实战经验为主,总结并分享我在学习和工作中的心得体会。
💕座右铭:先努力成长自己,再帮助更多的人,和我一起努力,让生活更加美好吧!
💕欢迎大家:这里是我的CSDN博客,一个分享知识的平台。
💕 如果你也热爱技术,想了解最新的IT趋势,想获取实用的学习资料,欢迎来访,三连支持,有问题私信我哦!让我们一起探索无限可能!😘
一. python条件语句的介绍
1.1 什么是条件语句
Python的条件语句是一种编程结构,用于根据条件的真假来控制程序执行的流程。它们通常用于对特定条件执行不同的代码块。
python中为什么会有条件语句?其实编程语言和我们用的汉语,英语异曲同,当一种表达满足不了需求的时候,肯定会考虑用其他的方式来表述。
比如我们常见的逻辑运算符:
如比较运算符(例如等于,不等于,大于,小于等)和布尔运算符(例如与、或、非等)。
一旦出现这些运算符的时候代表可能有不同的选择,比如大于的时候怎么办,小于的时候又该怎么办等。
而条件语句就是用来承接不同条件下执行不同代码快的设定。
例如,当满足某个条件时,程序可以执行一段代码,否则可以执行另一段代码。这使得程序可以根据不同的情况采取不同的行动,从而实现更加智能和适应性的功能。
Python中最常见的条件语句是if语句,它通常由if、elif和else关键字组成。if语句用于测试一个条件,如果条件为真,就执行紧跟在它后面的代码块,否则执行elif或者else语句块。通过这些条件语句,Python程序可以在不同的情况下执行不同的代码,从而实现更加灵活和智能的程序控制。
Python中有两种条件语句:if语句和if…else语句
1.2 条件语句的语法
- if语句的语法如下:
if 条件:
执行语句1
执行语句2
...
如果条件成立,则执行相应的语句块。如果条件不成立,则跳过语句块并继续执行程序。
- if…else语句的语法如下:
if 条件:
执行语句1
执行语句2
...
else:
执行语句3
执行语句4
...
如果条件成立,则执行第一个语句块。如果条件不成立,则执行第二个语句块。
1.3 关于内置函数bool()
Python一切皆对象,所有对象都有一个布尔值,想要获得布尔值需要一个内置函数bool()
bool()函数用于将给定的值转换为布尔值,如果值为True,则返回True,否则返回False。
在Python中,有许多值可以被解释为False,如数字0、空字符串、空列表、空字典和None等。除此之外,所有其他值都被解释为True。
例如: 以下对象的布尔值为False
- False
- 数值0
- None
- 空字符串
- 空列表
- 空元组
- 空字典
- 空集合
我们来测试下看看:
#测试对象的布尔值
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),否则跳过这些语句.
需要注意以下几点:
-
在if语句中,expression后面必须加上冒号(:),否则会报语法错误。
-
statement(s)必须缩进一个固定数量的空格或制表符,通常是4个空格或1个制表符。这个缩进是必需的,因为它表明哪些语句属于if语句的范围内。如果不缩进或缩进不正确,程序将无法执行或执行错误的代码块。
-
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会自动将它们拼接在一起。这个技巧可以用于将字符串和变量合并成一个输出。
输出结果:
但这里也出现一个问题,当我们的取款金额高于了1000的时候,程序会直接退出:
如果你想让他有输出,就需要使用多分支语句:
三. 多分支语句
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整除,即是一个奇数。
我们来看看测试结果:
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不支持switch语句,所以多个条件判断,只能用elif来实现,如果判断需要多个条件需同时判断时,可以:
- 使用or (或),表示两个条件有一个成立时判断条件成功
- 使用and (与),表示只有两个条件同时成立的情况下,判断条件才成功
# 判断值是否在小于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 嵌套循环
所谓的嵌套循环,顾名思义就是在循环中还嵌套了循环:
案例一: 购物结算程序
购物结算程序,根据用户是否为会员以及购买金额的不同,给出不同的折扣。
代码的流程如下:
- 从用户输入中获取是否为会员的信息以及购物金额的信息。
- 判断用户是否为会员,如果是会员则进入下一个判断;如果不是会员则根据购物金额是否满足满减条件给出折扣价并输出。
- 判断购物金额是否满足满减条件,如果满足则给出相应的折扣;如果不满足则给出默认的折扣(即不打折)。
- 计算折扣价并输出。
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语句之外计算折扣价,避免代码的重复
执行结果:
总结
✨ 原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!