易懂易学习的9个Python if, if else, if elif 命令示例

举报
Tiamo_T 发表于 2021/10/04 08:25:47 2021/10/04
【摘要】 与其他编程语言类似,在 Python 中,可以使用 if 命令处理条件情况。在这里,我们通过示例解释了以下内容:基本 Python if 命令示例Python if 命令运算符用于字符串比较的基本 Python if 命令示例使用缩进的 If 条件块中的多个命令Python if else 命令示例Python if else if 命令示例Python 复合 If 语句示例AND, OR,...

与其他编程语言类似,在 Python 中,可以使用 if 命令处理条件情况。

Python If 命令

在这里,我们通过示例解释了以下内容:

  1. 基本 Python if 命令示例
  2. Python if 命令运算符
  3. 用于字符串比较的基本 Python if 命令示例
  4. 使用缩进的 If 条件块中的多个命令
  5. Python if else 命令示例
  6. Python if else if 命令示例
  7. Python 复合 If 语句示例
  8. AND, OR, NOT in Python if 命令
  9. Python if 命令错误信息


这是 Python if 语句语法。以下示例将展示如何正确使用此语法。

if_stmt ::=  "if" expression ":" suite
             ( "elif" expression ":" suite )*
             ["else" ":" suite]

1. 基本 Python if 命令示例

以下示例说明了在使用数字进行条件测试时如何在 python 中使用 if 命令。

# cat if1.py
days = int(input("How many days are in March?: "))
if days == 31:
  print("You passed the test.")
print("Thank You!")

在上面的例子中:

  • 第 1 行:在这里,我们要求用户输入。输入将是一个整数,它将存储在变量 days 中。
  • 第 2 行:这是 if 命令,这里我们比较变量 days 的值是否等于数值 31。末尾的冒号是 if 命令语法的一部分,应该给出。
  • 第 3 行:这一行以两个空格开头。if 语句之后的任何行(一行或多行),在开头具有类似的缩进,都被视为 if 语句块的一部分。在这个例子中,我们在 if 语句之后只有一行,也就是第三行,它的开头有两个空格用于缩进。因此,当 if 语句的条件为真时,将执行此行。即如果变量 days 的值等于 31,则第三个将被执行
  • 第 4 行:该行在 if 语句块之外。因此,无论 if 语句是真还是假,这都会被执行。

下面是上面例子的输出,当 if 语句条件为真时。


# python if1.py
How many days are in March?: 31
You passed the test.
Thank You!

以下是上述示例的输出,当 if 语句条件为 false 时。

# python if1.py
How many days are in March?: 30
Thank You!

2. Python if 命令操作符

以下是您可以在 if 命令中用于条件检查的各种运算符。

条件 操作员
大于 >
大于或等于 >=
小于 <
小于或等于 <=
等于 ==
不等于 !=
对于对象标识 is
对于否定的对象标识 is not

3. 用于字符串比较的基本 Python if 命令示例

与前面的示例类似,我们也可以使用 Python if 命令进行字符串比较,如下例所示。

# cat if2.py
code = raw_input("What is the 2-letter state code for California?: ")
if code == 'CA':
  print("You passed the test.")
print("Thank You!")

在上面:

  • 第一行:这里我们从用户那里获取原始输入并将其存储在代码变量中。这将存储为字符串。
  • 第 2 行:在这个 if 命令中,我们比较代码变量的值是否等于字符串 'CA'。请注意,我们将静态字符串值括在单引号(不是双引号)中。最后的 : 是 if 命令语法的一部分。
  • 第 3 行:如前面示例中所述,当 if 命令条件为真时,将执行此行,因为此行开头有空格缩进。
  • 第 4 行:无论 if 命令条件为真还是假,这都会被执行。

以下是上述示例代码的 if 条件为 true 和 false 的输出。

# python if2.py
What is the 2-letter state code for California?: CA
You passed the test.
Thank You!

# python if2.py
What is the 2-letter state code for California?: NV
Thank You!

4. 使用缩进的 If 条件块中的多个命令

在前面的示例中,当 if 条件为真时,我们只有一个语句要执行。

以下示例显示当 if 条件为真时将在何处执行多行。这是通过在需要成为 if 条件块一部分的语句的开头进行适当的缩进来完成的,如下所示。

# cat if3.py
code = raw_input("What is the 2-letter state code for California?: ")
if code == 'CA':
  print("You passed the test.")
  print("State: California")
  print("Capital: Sacramento")
  print("Largest City: Los Angeles")
print("Thank You!")

在上面:

  • 第一行:这里我们从用户那里获取原始输入并将其存储在代码变量中。这将存储为字符串。
  • 第 2 行:在这个 if 命令中,我们比较代码变量的值是否等于字符串 'CA'。请注意,我们将静态字符串值括在单引号(不是双引号)中。最后的 : 是 if 命令语法的一部分。
  • 第 3 行 – 第 6 行:所有这些行在语句的开头都有相同的缩进。在这个例子中,所有这 4 个打印语句的开头都有 2 个空格。因此,这些语句将被执行,然后 if 条件变为真。
  • 第 4 行:此打印语句与之前的命令没有类似的缩进。所以,这不是 if 语句块的一部分。无论 if 命令是真还是假,这一行都会被执行。

下面是上面例子的输出,当 if 语句条件为真时。在这里,所有属于 if 条件块的 4 个打印语句都被执行。

# python if3.py
What is the 2-letter state code for California?: CA
You passed the test.
State: California
Capital: Sacramento
Largest City: Los Angeles
Thank You!

以下是上述示例的输出,当 if 语句条件为 false 时。

# python if3.py
What is the 2-letter state code for California?: NV
Thank You!

5. Python if else 命令示例

下面的例子展示了如何在 Python 中使用 if..else 命令。

# cat if4.py
days = int(input("How many days are in March?: "))
if days == 31:
  print("You passed the test.")
else:
  print("You failed the test.")
print("Thank You!")

在上面的例子中:

  • 第 1 行:在这里,我们要求用户输入。输入将是一个整数,它将存储在变量 days 中。
  • 第 2 行:这是 if 命令,这里我们比较变量 days 的值是否等于数值 31。末尾的冒号是 if 命令语法的一部分,应该给出。
  • 第 3 行:这一行以两个空格开头。if 语句之后的任何行(一行或多行),在开头具有类似的缩进,都被视为 if 语句块真条件的一部分。
  • 第 4 行:此 if 块具有 else 关键字。末尾的冒号是 if..else 命令语法的一部分,应该给出。
  • 第 5 行:这一行以两个空格开头。else 语句之后的任何行(一行或多行),在开头具有类似的缩进,都被视为 if 语句块 false 条件的一部分。
  • 第 6 行:该行在 if 语句块之外。因此,无论 if 语句是真还是假,这都会被执行。

下面的例子也与上面的例子类似,但是这个 if..else 使用字符串变量进行比较。

# cat if5.py
code = raw_input("What is the 2-letter state code for California?: ")
if code == 'CA':
 print("You passed the test.")
else:
 print("You failed the test.")
print("Thank You!")

以下是上述示例的输出,当 if 语句条件为 false 时。即 else 块将在这里执行。

# python if4.py
How many days are in March?: 30
You failed the test.
Thank You!

# python if5.py
What is the 2-letter state code for California?: NV
You failed the test.
Thank You!

6. Python if else if 命令示例

在 Python 中,if else if 使用 if elif else 格式处理。

下面的例子展示了如何在 Python 中使用 if..elif..else 命令。

# cat if6.py
code = raw_input("Type a 2-letter state code that starts with letter C: ")
if code == 'CA':
  print("CA is California")
elif code == 'CO':
  print("CO is Colorado")
elif code == 'CT':
  print("CT is Connecticut")
else:
  print("Invalid. Please enter a valid state code that starts with letter C")
print("Thank You!")

在上面:

  • 当第一个 if code == 'CO' 条件失败时,它会转到下一个 elif 命令。
  • 当 elif 代码 == 'CO' 条件失败时,它会转到下一个 elif 代码命令。
  • 当 elif 代码 == 'CT' 条件失败时,它只会执行作为最终 else: 块的一部分可用的任何内容。
  • 在第一个 if 条件变为真时,或其余 elif 条件中的任何一个变为真时,它会执行属于其块的语句并停止检查进一步的条件。
  • 这也意味着当任何 if 条件或 elif 条件变为真时,作为 else 块的一部分的语句将不会被执行。
  • 此外,就像前面的示例一样,if、elif、else 命令末尾的冒号是 Python 语法的一部分,应该指定它。

以下是第一个 if 条件成立时的输出。

# python if6.py
Type a 2-letter state code that starts with letter C: CA
CA is California
Thank You!

以下是第一个 elif 条件为真时的输出。

# python if6.py
Type a 2-letter state code that starts with letter C: CO
CO is Colorado
Thank You!

以下是第二个 elif 条件为真时的输出。

# python if6.py
Type a 2-letter state code that starts with letter C: CT
CT is Connecticut
Thank You!

以下是if条件为false时的输出,其余elif条件也全部为false。在这里,执行 else 块。

# python if6.py
Type a 2-letter state code that starts with letter C: NV
Invalid. Please enter a valid state code that starts with letter C
Thank You!

7. Python 复合 If 语句示例

以下示例显示了如何在 if 语句中使用复合条件命令。

# cat if7.py
a = int(input("Enter a: "))
b = int(input("Enter b: "))
c = int(input("Enter c: "))
if a < b < c: 
  print("Success. a < b < c")

在上面:

  • 只有当 if 条件为真时才会执行打印块。在这里,我们对 if 语句使用复合表达式,只有当 a 小于 b 且 b 小于 c 时它才会为真。

以下是 if 条件成立时的输出。

# python if7.py
Enter a: 10
Enter b: 20
Enter c: 30
Success. a < b < c

以下是 if 条件变为 false 时的输出。

# python if7.py
Enter a: 10
Enter b: 10
Enter c: 20

8. AND, OR, NOT 在 Python 中 if 命令

您还可以在 python if 命令表达式中使用以下运算符。

操作员 健康)状况 描述
and x 和 y 仅当 x 和 y 都为真时才为真。
or x 或 y 如果 x 为真,或 y 为真,则为真。
not 不是 x 如果 x 为假,则为真。如果 x 为真,则为假。

 
下面的例子展示了我们如何在 python if 条件中使用关键字“and”。

# cat if8.py
x = int(input("Enter a number > 10 and < 20: "))
if x > 10 and x < 20:
  print("Success. x > 10 and x < 20")
else:
  print("Please try again!")

在上面:

  • 只有当 if 语句中提到的条件都为真时,if 语句才会为真。
    即 x 应该大于 10 并且 x 也应该小于 20 才能满足此条件。所以,基本上 x 的值应该在 10 到 20 之间。

以下是 if 条件成立时的输出。即当 if 语句中提到的两个表达式都为真时。

# python if8.py
Enter a number > 10 and < 20: 15
Success. x > 10 and x < 20

以下是 if 条件变为 false 时的输出。即 if 语句中提到的表达式中只有一个为真。因此,整个 if 语句变为假。

# python if8.py
Enter a number > 10 and < 20: 5
Please try again!

9. Python if 命令错误信息

以下是您在使用 if 命令时可能会看到的一些错误消息。

当您没有为 if 命令后面的语句提供正确的缩进时,就会发生此 IndentationError 错误。

# python if9.py 
  File "if3.py", line 4 
    print("State: California") 
                             ^ 
IndentationError: unindent does not match any external indentation level

当您不指定冒号时会发生以下 SyntaxError :在 python if 语句的末尾

# python if9.py 
  File "if.py", line 2 
    if days == 31 
                ^ 
SyntaxError: invalid syntax

当您指定无效的运算符时,将发生相同的 SyntaxError。在此示例中,python 中没有名为 -eq 的运算符。因此,此 if 命令因语法错误而失败。当您指定 elseif 而不是 elif 时,您也会遇到类似的语法错误。

# python if9.py 
  File "if.py", line 2 
    if days -eq 31: 
                 ^ 
SyntaxError: invalid syntax
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。