Python IF,ELIF和ELSE语句
本文概述
用任何语言编写代码时, 你都必须控制程序的流程。通常是在涉及决策的情况下-如果满足条件, 你将要执行特定的代码行, 如果不满足, 则要执行另一组代码。在Python中, 你可以使用if, elif和else语句来实现此目的。在本教程中, 你将使用一个示例来学习简单的if语句, 然后逐步进入if-else然后是if-elif-else语句。你还将学习有关嵌套的内容, 并查看嵌套的if示例。让我们开始吧….
简单的if语句
这是条件语句的最简单示例。语法为:
如果(条件):
缩进语句块
只要条件为TRUE, 将在冒号(:)之后缩进相同的行数。
来源:Programiz的python
例如, 假设你正在记录某门课程的分数。总分为100分, 其中理论工作得分50分, 实践得分50分。如果分数超过100, 则要显示错误消息或警告。
score_theory = 40score_practical = 45
if(score_theory + score_practical > 100):
print("Invalid score. Please check the input.")
冒号(:)很重要, 因为它将条件与条件评估后要执行的语句分开。对于只有一个语句且不使用方括号()的语句, 这尤其重要。例如:
score_theory = 40score_practical = 45
if score_theory + score_practical > 100: # End of condition
print("Invalid score. Please check the input.")
上面的if语句检查’if’条件并确定(40 + 45 = 85)> 100的语句为FALSE, 因此不会打印警告。让我们将语句设为FALSE, 看看会发生什么:
score_theory = 50score_practical = 55
if(score_theory + score_practical >= 100):
print("Invalid score. Please check the input.")
Invalid score. Please check the input.
假设你想更进一步, 并在总分实际上在该范围内(即小于100)时显示一条语句。这是if-else语句会有所帮助的时候。
一次测试:if-else语句
if-else语句用于编码的方式与使用英语的方式相同。 if-else语句的语法为:
如果(条件):
条件为TRUE时的缩进语句块
其他:
条件为FALSE时的缩进语句块
来源:Programiz的python
让我们尝试从上面的代码开始工作, 并重新定义问题:当记录某门课程的分数时, 你希望将理论部分和实践部分的分数加起来以获得总分数。如果总分小于100-你想显示”分数还可以”消息, 如果不是, 则像以前一样显示警告。
score_theory = 40score_practical = 45
if(score_theory + score_practical > 100):
print("Please check the input. Score exceeds total possible score.")
else:
print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is: 85
提示:如果仅要执行的一行代码而不是该条件之后的代码中的多行, 则可以将其全部放在同一行中。这不是规则, 而只是编码人员之间的常见做法。使用这种样式从上面重写代码:
score_theory = 40score_practical = 45
# Single statement: if(condition): Statement for when condition is true
if (score_theory + score_practical > 100): print("Please check the input. Score exceeds total possible score.")
# Single statement: if(condition): Statement for when condition is false
else: print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is: 85
现在想象一种情况, 其中一个分数超过50, 但总分仍然小于100。那么你认为会发生什么呢?
score_theory = 60score_practical = 40
if(score_theory + score_practical > 100):
print("Please check the input. Score exceeds total possible score.")
else:
print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is: 100
这是错误的, 因为你知道理论或实践中单个分数的最大限制不应超过50。如何在代码中体现这一点? ans:if-elif-else语句。
多种测试:if-elif-else语句
让我们来解决目前存在的问题, 并在跳入代码之前尝试用单词将其构筑起来。
步骤1.输入两个分数:score_theory和score_practical
步骤2.检查所有分数均未超过最大可能分数50。这也解决了总分数不超过10)的问题。如果任何一个大于50-显示警告并退出。
- 2.1检查score_theory
- 2.2检查score_practical
步骤3.如果两者均未超过分数, 则显示”分数还可以”并退出。
# Step 1score_theory = 60
score_practical = 20
if(score_theory > 50):
print("Please check the input score for 'Theory'.") # Step 2.1
elif(score_practical > 50):
print("Please check the input score for 'Practical'.") # Step 2.2
else:
print("Score validated. Your total is: ", score_theory + score_practical) # Step 3
Please check the input score for 'Theory'.
if-else-if语句后面的语法是:
if(Condition1):
Condition1的缩进语句块
ELIF(条件2):
Condition2的缩进语句块
其他:
如果上述所有条件检查均失败, 则备用语句块
来源:Programiz的python
通过一种精心设计的方式来查看if-elif-else语句的效果, 就像if-else语句将其编写如下所示:
score_theory = 60score_practical = 20
if(score_theory > 50):
print("Please check the input score for 'Theory'.")
else:
if(score_practical > 50):
print("Please check the input score for 'Practical'.")
else:
print("Score validated. Your total is: ", score_theory + score_practical)
Please check the input score for 'Theory'.
elif语句实际上使编写代码更容易。想象一下, 如果问题语句变得更加复杂, 那么跟踪另一个if语句中的每个if-else语句就很容易成为噩梦!
让我们在同一示例上做更多的工作。现在, 假设你想跟踪多个课程, 例如:”科学”和”英语”。两者的总分仍是相同的, 即100。但是, 对于科学, 理论和实践的细分是50-50, 而对于英语, 则是60-40。你还能使用上面的格式吗?
是!你可以使用嵌套if语句的概念轻松完成此操作
嵌套if语句
当你在另一个if语句中包含一个if语句时, 这在编程世界中称为嵌套。它不一定总是简单的if语句, 但是你可以使用if, if-else甚至if-elif-else语句的组合概念来形成更复杂的结构。
让我们为上面讨论的示例编写代码:
coursework = "English"score_theory = 53
score_practical = 35
if(coursework == "Science" or coursework == "science"):
if(score_theory > 50):
print("Please check the input score for 'Science: Theory'.")
elif(score_practical > 50):
print("Please check the input score for 'Science: Practical'.")
else:
print("Score validated for Science. Your total is: ", score_theory + score_practical)
elif(coursework == "English" or coursework == "english"):
if(score_theory > 60):
print("Please check the input score for 'English: Theory'.")
elif(score_practical > 40):
print("Please check the input score for 'English: Practical'.")
else:
print("Score validated for English. Your total is: ", score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Score validated for English. Your total is: 88
请注意上面的代码中使用或?它是用来评估”科学”和”科学”作为相同的课程, “英语”和”英语”也是如此。可以使用布尔语句(例如or), 并将多个条件组合在一起。但是, 你必须小心理解此类组合语句的布尔输出, 才能完全实现程序的控制流。
我们可以重写上面的代码以检查同一条语句中的分数, 但是, 这确实使代码难以阅读并且有时难以调试这些语句。
coursework = "English"score_theory = 53
score_practical = 78
if(coursework == "Science" or coursework == "science"):
if(score_theory > 50 or score_practical > 50):
# Can't distinguish the error in Science: theory or Science: Practical
print("Please check the input score for Science.")
else: print("Score validated for Science. Your total is: ", score_theory + score_practical)
elif(coursework == "English" or coursework == "english"):
if(score_theory > 60 or score_practical > 40):
# Can't distinguish the error in English: theory or English: Practical
print("Please check the input score for English.")
else: print("Score validated for English. Your total is: ", score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Please check the input score for English.
瞧!
在本教程中, 你解决了Python中可用的主要控制流机制之一。你已经在多个级别上使用了示例, 以查看实际的if语句的变化。要了解有关Python的更多信息, 请查看srcmini的Python数据科学入门课程。
以上是 Python IF,ELIF和ELSE语句 的全部内容, 来源链接: utcz.com/p/204093.html