Skip to Content
Python 趣味入门系列CSDN 4.条件语句

本文由作者原文迁入,保留原文叙述与示例。内容发表于 2021–2022 年,软件版本和界面截图可能已过时,请以官方文档为准。 原文:CSDN 博客 

上一章:小牛叔讲Python第3章:基本概念VSIO(变量、字符、输入输出) 

下一篇:小牛叔讲Python第5章:while循环-符合条件就带你一直 

人生处处有选择,程序也有选择,为了让程序变得更加强壮,程序员必须考虑任何情况,上一篇了解到了如何使用Python来行顺序语句的编写,我们写了一个可以输入姓名的生日祝贺程序,今天我们挑战条件语句!

1、条件语句

现实总是可悲的,人生的很多选择都是无法重现的,比如你选择了Python看到了这篇教程(恭喜你,做了无比正确的决定!)你永远无法知道,如果你之前选择了Java现在看的是什么教程。
但是程序必须考虑到选择的所有情况,因为程序是不断地被运行的,天知道有什么条件会触发特定动作。传说,俄罗斯的核按钮随身跟着总统,也许里面的触发条件语句永远不会运行,但总要有人去写它。

条件语句的写法如下,条件成立和不成立都是子语句因此必须缩进:

if 判断表达式:
  条件成立
else:
  条件不成立

小牛叔在疫情期间每天上班,都需要扫描二维码填写健康申报,会询问你14天内有没有去过湖北,如果有就会提示你有风险,如果没有就提示无风险。这个程序怎么写呢?

if input('您在14内去过湖北吗?')=='是': print('您有风险!') else: print('暂无风险!')

大家在写代码时,要注意如下的几个问题:

  • 小写:所有的语句大小写敏感,大部分语句都是小写,除非规定大写。
  • 缩进: 子语句必须要缩进,否则程序会出错。
  • 可省略else:可以省略else以及子语句表示不满足条件时,直接向下运行。
  • 等号:判断相等必须使用两个等号
  • 冒号:if和else后面都要跟冒号,表示下行的语句是子语句,缩进会有变化。

2、逻辑判断

if语句后紧跟着就是逻辑判断,如下把两个数字或变量连接在一起的就是逻辑判断:

  • == 相等
  • >大于
  • < 小于
  • >= 大于等于
  • <= 小于等于
  • != 不等于
  • is 是不是类型 (is None 是不是为空)
  • in 被包含其中 (‘a’ in ‘abc’的值是真)

以上逻辑判断表达式的结果只有两个:True或是False (注意首字线必须大写)。
此外,如下的这些表达式结果都是False:

"" #空字符串
” #空字符串
[ ] #空列表
( ) #空元组
{ } #空字典
None #空值

3、逻辑运算

多个条件的组合可以使用: not, and, or。如果要求10岁以上的学生在疫情期间开学,其判断程序要求:14天未出城并且年龄>=10。 就可以这么写条件:
假设年龄变量为age,14天内出城为变量traveled

age>=10 and not traveled

4、多条件

很多情况下,判断只有两个结果的情况并不能方便表达多个层次的情况,比如在疫情报警程序中,人可能有3种状态:绿色(没出过城)、黄色(出过城)、红色(去过湖北)。多条件的语句必须加上elif:

if 判断表达式1:
  条件1成立
elif 判断表达2:
  条件2成立
elif 判断表达3:
  条件3成立
  …
elif 判断表达N:
  条件N成立
else:
  所有条件不成立

假设出城目的地变量为from,14天内是否出城为变量traveled,出过城为黄色,去过湖北为红色,没有出城为绿色:

if not traveled: print('绿色') elif from=='湖北': print('红色') else: print('橙色')

5、小示例

假设我们要做一个翻译程序,把中文的“一、二…九”翻译成数字,可以使用多条件语句这样:

number = input("输入中文一至九:") output = '' if number == "一": output = '1' elif number == "二": output='2' elif number == "三": output='3' elif number == "四": output='4' elif number == "五": output='5' elif number == "六": output='6' elif number == "七": output='7' elif number == "八": output='8' elif number == "九": output='9' else: output='输入错误' print(output)

下面是程序运行的示例视频:

Last updated on