python的三种选择语句
- 格式:pdf
- 大小:187.45 KB
- 文档页数:11
python选择结构的原理
Python的选择结构主要有if语句和elif语句组成,其原理如下:
1. if语句:if语句用于判断一个条件是否为真,如果条件为真,则执行if语句块中的代码;如果条件为假,则跳过if语句块
中的代码,继续执行下面的代码。
2. elif语句:elif语句用于在多个条件之间进行选择,当if语
句中的条件为假时,继续判断elif语句中的条件是否为真,如
果条件为真,则执行elif语句块中的代码;如果条件仍为假,
则跳过elif语句块中的代码,继续执行下面的代码。
3. else语句:else语句用于在所有条件都为假时执行,默认情
况下执行else语句块中的代码。
选择结构的原理是按照条件的真假来决定代码的执行路径。
根据条件的真假情况,选择执行相应的代码块。
如果条件为真,则执行对应的代码块;如果条件为假,则跳过对应的代码块,继续执行下面的代码。
如果有多个条件需要判断,可以使用多个elif语句来实现多路判断。
最后,如果所有条件都为假,则
执行else语句块中的代码。
这样可以根据不同的条件选择不
同的代码执行路径,实现不同的逻辑分支。
python之选择结构(if--elif--else)python中有三种结构:顺序结构、选择结构、循环结构,此处介绍选择结构。
if -- else 结构:if 判断条件: 执⾏语句else: 执⾏语句当if后⾯的判断条件为真(True)时,执⾏冒号后⾯的语句,否则执⾏else后⾯的语句,注意语句缩进。
if 判断表达式可⽤ <=, >=, !=, ==, > , <# 判断学⽣成绩是否合格marks = float(input("请输⼊学⽣成绩"))if marks >= 60:print("该学⽣成绩合格")else:print("该学⽣需要补考")打印结果:"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py请输⼊学⽣成绩59.5该学⽣需要补考if 判断表达式可⽤ in ,not in 判断# 查找学⽣是否在班级中list1 = ["张三", "李四", "王⼆", "⿇⼦"]student = input("请输⼊学⽣姓名")if student not in list1:print("不在该班级中")else:print("为此班级学⽣")打印结果:"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py请输⼊学⽣姓名⼆狗⼦不在该班级中if 判断条件中,如果需要同时满⾜多个条件,则可⽤and关联判断条件# 输出年龄在20岁内,王姓学⽣student = {"张三": 19, "李四": 20, "王⼆": 19, "⿇⼦": 20}for name in student:if"王"in name and student[name] < 20:print("姓名:" + name+"" + "年龄:" + str(student[name]))else:pass打印结果:"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py姓名:王⼆年龄:19if判断条件中,如果多个条件中只需要其中⼀个满⾜,则可⽤or 关联判断条件# 输⼊成绩在90分以上,或者成绩在60分以下的考⽣marks = {"张三": 95, "李四": 20, "王⼆": 88, "⿇⼦": 91}for name in marks:if marks[name] > 90 or marks[name] < 60:print("姓名:" + name+"" + "分数:" + str(marks[name]))else:pass打印结果:"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py姓名:张三分数:95姓名:李四分数:20姓名:⿇⼦分数:91if -- elif --else 结构if 判断条件: 执⾏语句elif 判断条件: 执⾏语句......else: 执⾏语句当if后⾯的判断条件为真(True)时,执⾏冒号后⾯的语句,否则进⾏判断elif后⾯的判断条件,elif判断条件为真,执⾏冒号后⾯的语句,⼀直往下,如果条件判断都不为真,则执⾏else下的语句。
python选择数据的方法Python中选择数据的方法主要有两种:普通索引和位置索引。
1. 普通索引:通过传入列名来选择数据。
如果是一列,则只需要传入一个列名;如果是同时选择多列,则传入多个列名即可,多个列名用一个列表存起来。
例如:```pythonimport pandas as pd# 创建一个数据框data = {'column1': [1, 2, 3], 'column2': [4, 5, 6], 'column3': [7, 8, 9]}df = pd.DataFrame(data)# 选择一列column1 = df['column1']# 选择多列columns = df[['column1', 'column2']]```2. 位置索引:通过传入具体列的位置(即第几列)来选择数据。
这种方式需要用到`iloc`方法。
例如:```pythonimport pandas as pd# 创建一个数据框data = {'column1': [1, 2, 3], 'column2': [4, 5, 6], 'column3': [7, 8, 9]}df = pd.DataFrame(data)# 选择第1列column1 = df.iloc[:, 0]# 选择第2列column2 = df.iloc[:, 1]# 选择前两列columns = df.iloc[:, :2]```这两种方法都可以在Python中方便地选择数据,根据实际需求选择合适的索引方式。
python 选择表达式Python 选择表达式选择表达式是Python 3.8中新增的语法,用于简化条件表达式的编写。
它的语法如下:result = value_if_true if condition else value_if_false 其中,如果条件表达式condition的计算结果为真,则result 的值为value_if_true;否则,result的值为value_if_false。
下面我们来逐步解析选择表达式的语法和作用。
1. 简化条件表达式在以前的Python版本中,我们通常使用if-else语句来实现条件表达式,例如:if x > y:max_value = xelse:max_value = y这个if-else语句可以使用选择表达式简化为:max_value = x if x > y else y仅仅用一行代码就可以完成条件表达式的判断操作,使代码更加简洁明了。
2. 处理多重条件表达式选择表达式也可以用于处理多重条件表达式。
例如:if x > y:max_value = xelif x == y:max_value = 0else:max_value = y我们可以使用选择表达式简化为:max_value = x if x > y else 0 if x == y else y这种写法虽然看起来有些复杂,但是却可以用一行代码进行多重条件的判断。
这种写法不仅简化了代码,还更加清晰明了,让代码看起来更加精简。
3. 简化lambda表达式如果你经常使用lambda表达式,你会发现选择表达式可以让你的lambda函数更加简化。
例如:list_data = [1, 2, 3, 4, 5]result = list(map(lambda x: x**2, list_data))这个例子中,我们使用了lambda表达式来计算list_data中每个元素的平方值。
本文将详细介绍Python语言中的三种选择语句:if语句,if/else语句和if/elif/else语句。
对于每种语句,我们都提供了相应的流程图。
与此同时,我们给出许多简单的示例程序,以帮助读者加深理解。
一、程序的控制结构对于Python程序中的执行语句,默认时是按照书写顺序依次执行的,这时我们说这样的语句是顺序结构的。
但是,仅有顺序结构还是不够的,因为有时候我们需要根据特定的情况,有选择地执行某些语句,这时我们就需要一种选择结构的语句。
另外,有时候我们还可以在给定条件下往复执行某些语句,这时我们称这些语句是循环结构的。
有了这三种基本的结构,我们就能够构建任意复杂的程序了。
对本文来说,我们要讨论的是三种基本程序结构中的选择结构,它们分别用if语句、if/else 语句和if/elif/else语句实现。
至于其它两种控制结构,我们会在后续的文章中陆续加以介绍。
下面我们首先介绍if语句。
二、if语句Python的if语句的功能跟其他语言的非常相似,都是用来判定给出的条件是否满足,然后根据判断的结果(即真或假)决定是否执行给出的操作。
If语句是一种单选结构,它选择的是做与不做。
它是由三部分组成:关键字if本身、测试条件真假的表达式(我们简称为条件表达式)和表达式结果为真(即表达式的值为非零)时要执行的代码。
If语句的语法形式如下所示:if 表达式:语句体if语句的流程图如下所示:图1 if语句的流程示意图注意,if语句的语句体只有当条件表达式的值为真,即非零时,才会执行;否则的话,程序就会直接跳过这个语句体,去执行紧跟在这个语句体之后的语句。
我们这里的语句体,既可以包含多条语句,也可以只有一条语句组成,但是语句体由多条语句组成时,要有统一的缩进形式,否则就会出现逻辑错误,即语法检查没错,但是结果却非预期。
现在我们用一个示例程序来演示一下if语句的用法。
我们的程序很简单的,只要用户输入一个整数,如果这个数字大于6,那么就输出一行字符串;否则,直接退出程序。
python多选择题以下是一个简单的Python多选择题示例:```python# 定义选项和答案options = ["apple", "banana", "orange", "grape"]correct_answers = ["apple", "orange"]# 生成多选择题question = "下面哪种水果是红色或绿色的?(多选)"print(question)for option in options:print(f"{option}. {option}")# 获取用户答案user_answers = []for option in options:if input(f"{option} (Y/N): ").lower() == "y":user_answers.append(option)# 判断用户答案是否正确if set(user_answers) == set(correct_answers):print("回答正确!")else:print("回答错误!正确答案是:", ", ".join(correct_answers)) ```这个例子中,我们定义了四个选项和一个正确答案列表。
然后,我们生成了一个多选择题,并让用户输入他们认为正确的答案。
最后,我们比较用户答案和正确答案,如果相同则输出“回答正确”,否则输出“回答错误”和正确答案。
Pythonifelse条件语句详解我们看到的代码都是顺序执⾏的,也就是先执⾏第1条语句,然后是第2条、第3条……⼀直到最后⼀条语句,这称为顺序结构。
但是对于很多情况,顺序结构的代码是远远不够的,⽐如⼀个程序限制了只能成年⼈使⽤,⼉童因为年龄不够,没有权限使⽤。
这时候程序就需要做出判断,看⽤户是否是成年⼈,并给出提⽰。
在 Python 中,可以使⽤ if else 语句对条件进⾏判断,然后根据不同的结果执⾏不同的代码,这称为选择结构或者分⽀结构。
Python 中的 if else 语句可以细分为三种形式,分别是 if 语句、if else 语句和 if elif else 语句,它们的语法和执⾏流程如下图所⽰。
以上三种形式中,第⼆种和第三种形式是相通的,如果第三种形式中的 elif 块不出现,就变成了第⼆种形式。
另外,elif 和 else 都不能单独使⽤,必须和 if ⼀起出现,并且要正确配对。
对语法格式的说明:“表达式”可以是⼀个单⼀的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到⼀个值就⾏。
不管“表达式”的结果是什么类型,if else 都能判断它是否成⽴(真或者假)。
“代码块”由具由相同缩进量的若⼲条语句组成。
if、elif、else 语句的最后都有冒号:,不要忘记。
⼀旦某个表达式成⽴,Python 就会执⾏它后⾯对应的代码块;如果所有表达式都不成⽴,那就执⾏ else 后⾯的代码块;如果没有 else 部分,那就什么也不执⾏。
执⾏过程最简单的就是第⼀种形式——只有⼀个 if 部分。
如果表达式成⽴(真),就执⾏后⾯的代码块;如果表达式不成⽴(假),就什么也不执⾏。
对于第⼆种形式,如果表达式成⽴,就执⾏ if 后⾯紧跟的代码块1;如果表达式不成⽴,就执⾏ else 后⾯紧跟的代码块2。
对于第三种形式,Python 会从上到下逐个判断表达式是否成⽴,⼀旦遇到某个成⽴的表达式,就执⾏后⾯紧跟的语句块;此时,剩下的代码就不再执⾏了,不管后⾯的表达式是否成⽴。
Python输出三种⽅式和if语句格式化输出⼀、占位符程序中经常会有需要使⽤固定格式让⽤户输⼊然后打印成固定格式的情况例如要求⽤书输⼊⽤户名和年龄还有⾝⾼,打印成如下格式My name is xxx,My age is xxx, My height is xxx很明显⽤逗号进⾏字符串拼接,但是这样数字也需要经过转换,整个代码会显的⾮常冗余。
话不多说就让我们来看⼀下上⾯说的那种⽅式吧:name = 'jiangjiahui'age = 18print('My name is',name)print('My name is age',age)但是这样会显得很⿇烦,所以这个时候就有了占位符name = 'jiangjiahui'age = 18print('My name is %s My age is'%(name,age))但是使⽤占位符时,会有⼀个问题就是%d(针对所有数据类型)、%s(针对所有类型)⼆、format格式化上述的占位符⽅式在有很多参数时会先的杂乱,所以就有了下⾯的f-string格式化。
name = 'jiangjiahui'age = 18print("Hello, {}. You are {}.".format(name, age))打印结果:Hello, jiangjiahui. You are 18.三、f-string格式化相⽐较占位符的⽅式,python3.6版本新增了f-string格式化的⽅式,⽐较简单易懂name = 'jiangjiahui'age = 18print(f'My name is:{name} My age is:{age}.')打印结果:My name is:jiangjiahui My age is:18salary = 6.6666print(f'{salary:.2f}')6.67流程判断if⼀、定义:模拟⼈做判断,如果这样做什么,如果那样做什么1.1 if我们是为了让计算机模拟我们的⼯作,⽐如说今天你要出门,然后天⽓预报说今天可能会下⾬,那么出门前你就会进⾏判断要不要带⾬伞if 条件:代码1代码2 #代码123组合起来就是⼀个代码块代码三....1.2 if....elseif 条件:代码块else : #if...else表⽰代码成⽴会做什么,else表⽰不成⽴会做什么代码块1.3 if...elif...else在实际过程中,我们可能会遇到不⽌两种以上的情况所以这个时候我们就可以使⽤if...elif...else语句if 条件1:代码块1elif 条件2:代码块2else :代码块三⼆.if的嵌套如果要下⾬怎么办,如果不下⾬怎么办,如果⾛在路上下路了怎么办呢?这个时候我们就需要对多种情况进⾏判断#if嵌套的⽅式if 条件表达式1:if 条件表达式2:代码块1else:代码块2else :代码块三 #当然else⾥⾯也可以嵌套if语句。
python 选择结构题目
如果您是在寻找一些关于Python选择结构的练习题目,这里提供几个例子,涉及基本的`if`、`elif`和`else`语句,这些是Python中用于实现选择结构的关键词:
1. 基础选择题目:
-编写一个Python程序,要求用户输入一个数字,然后程序会输出该数字是正数、负数还是零。
2. 多重选择题目:
-编写一个Python程序,要求用户输入一个成绩,然后根据成绩输出对应的等级(A、B、C、D、F,其中A是90分以上,B是80到89分,C是70到79分,D是60到69分,F是60分以下)。
3. 嵌套选择题目:
-编写一个Python程序,要求用户输入年份,然后判断该年份是否为闰年。
规则是:能够被4整除但不能被100整除的年份,或者能够被400整除的年份是闰年。
4. 逻辑运算符与选择结构:
-编写一个Python程序,要求用户输入三个整数,然后程序输出这三个数中的最大值。
5. 复合条件选择题目:
-编写一个Python程序,要求用户输入一个数字,然后检查这个数字是否在1到10之间且不等于5。
这些题目涵盖了从基础到稍微复杂的选择结构使用情况,适合初学者练习和巩固Python中的条件判断知识。
python基本控制结构
在python语句中,对于语句的执⾏有三种基本控制结构,即顺序结构、选择结构、循环结构。
顺序结构
顺序结构是程序按照线性顺序,依次执⾏的⼀种运⾏⽅式,运⾏过程见下图。
选择结构
选择结构可以根据条件来控制代码的执⾏分⽀,也叫分⽀结构。
分⽀结构包含单分⽀、双分⽀和多分⽀等形式。
单分⽀结构
if(条件表达式):
语句/语句块
其中:
(1)条件表达式:可以是关系表达式、逻辑表达式、算术表达式等
(2)语句/语句块:可以是单个语句,也可以是多个语句。
多个语句的缩进必须⼀致。
当条件表达式的值为真(True)时,执⾏后⾯的if语句(块),否则不做任何操作,控制将转到if语句的结束点。
双分⽀结构
if(条件表达式1):
语句/语句块1 else:
语句/语句块2多分⽀结构
if(条件表达式1):
语句/语句块1 elif(条件表达式2):
语句/语句块2···
elif(条件表达式n):
语句/语句块n else:
语句/语句块2循环结构。
python选择语句例题
嘿,朋友们!咱今天就来聊聊 Python 选择语句那些事儿。
你知道吗,就像我们在生活中要根据不同情况做出选择一样,Python 里的选择语
句也是超厉害的!比如说,你在纠结今天出门穿哪双鞋,是运动鞋呢,还是皮鞋,这就好比 Python 里的 if 语句在判断条件呢!
咱来看个具体例子哈,比如你想写个程序,判断一个数是不是大于50。
就可以这样写:
```python
num = 60
if num > 50:
print("这个数大于 50 呀!")
```
看到没,这就像你明确知道了穿运动鞋更适合跑步,然后就果断选
择了运动鞋一样清晰明了呀!
再来说说 elif 语句,这就好像你除了运动鞋和皮鞋,还有双凉鞋可
以选。
比如下面这个例子:
```python
score = 75
if score >= 90:
print("优秀!")
elif score >= 70:
print("良好!")
else:
print("加油哦!")
```
这是不是很形象呀!这就跟你根据不同场合选择不同鞋子一样合理嘛。
还有哦,选择语句在处理各种情况时那可真是太有用啦!就像你在面对不同天气决定带不带伞一样重要。
想象一下,要是没有这些选择语句,程序不就变得死板啦?那可不行呀!
我觉得呀,Python 的选择语句就像是一把神奇的钥匙,能打开各种不同的可能性之门,让程序变得更加灵活和智能。
大家可得好好掌握它呀,不然可就亏大啦!。
Python中的choice方法使用详解在Python中,choice(是random模块中的一个方法,用于从一个非空序列中随机选择一个元素返回。
choice(方法的用法如下:random.choice(sequence)其中,sequence是一个非空序列,可以是列表、元组、字符串等。
下面是关于choice(方法的详细说明:1. 随机选择元素:choice(方法会从给定的序列中随机选择一个元素,并将其返回。
每个元素被选择的概率是相等的,即每个元素被选择的可能性是相同的。
2. 序列不能为空:sequence必须是一个非空序列,否则会抛出IndexError异常。
3. 序列可以是列表、元组或字符串:sequence可以是任何非空序列,包括列表、元组和字符串。
当sequence是字符串时,choice(方法将从字符串中随机选择一个字符返回。
例如:import random#从给定列表中随机选择一个元素list1 = [1, 2, 3, 4, 5]print(random.choice(list1))#从给定元组中随机选择一个元素tuple1 = (1, 2, 3, 4, 5)print(random.choice(tuple1))#从给定字符串中随机选择一个字符str1 = "hello"print(random.choice(str1))输出结果:4. 返回值是随机选择的元素:choice(方法返回的是随机选择的元素本身,而不是一个包含该元素的列表或元组。
例如:import randomlist1 = [1, 2, 3, 4, 5]choice = random.choice(list1)print(choice)print(type(choice))输出结果:<class 'int'>5. choice(方法与randrange(方法的区别:choice(方法从给定序列中选择一个元素返回,而randrange(方法则是根据指定范围生成一个随机数返回。
本文将详细介绍Python语言中的三种选择语句:if语句,if/else语句和if/elif/else语句。
对于每种语句,我们都提供了相应的流程图。
与此同时,我们给出许多简单的示例程序,以帮助读者加深理解。
一、程序的控制结构对于Python程序中的执行语句,默认时是按照书写顺序依次执行的,这时我们说这样的语句是顺序结构的。
但是,仅有顺序结构还是不够的,因为有时候我们需要根据特定的情况,有选择地执行某些语句,这时我们就需要一种选择结构的语句。
另外,有时候我们还可以在给定条件下往复执行某些语句,这时我们称这些语句是循环结构的。
有了这三种基本的结构,我们就能够构建任意复杂的程序了。
对本文来说,我们要讨论的是三种基本程序结构中的选择结构,它们分别用if语句、if/else 语句和if/elif/else语句实现。
至于其它两种控制结构,我们会在后续的文章中陆续加以介绍。
下面我们首先介绍if语句。
二、if语句Python的if语句的功能跟其他语言的非常相似,都是用来判定给出的条件是否满足,然后根据判断的结果(即真或假)决定是否执行给出的操作。
If语句是一种单选结构,它选择的是做与不做。
它是由三部分组成:关键字if本身、测试条件真假的表达式(我们简称为条件表达式)和表达式结果为真(即表达式的值为非零)时要执行的代码。
If语句的语法形式如下所示:if表达式:语句体if语句的流程图如下所示:图1if语句的流程示意图注意,if语句的语句体只有当条件表达式的值为真,即非零时,才会执行;否则的话,程序就会直接跳过这个语句体,去执行紧跟在这个语句体之后的语句。
我们这里的语句体,既可以包含多条语句,也可以只有一条语句组成,但是语句体由多条语句组成时,要有统一的缩进形式,否则就会出现逻辑错误,即语法检查没错,但是结果却非预期。
现在我们用一个示例程序来演示一下if语句的用法。
我们的程序很简单的,只要用户输入一个整数,如果这个数字大于6,那么就输出一行字符串;否则,直接退出程序。
代码如下所示:#-*-coding:cp936-*-#比较输入的整数是否大于6integer=raw_input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数if integer>6:print'%d大于6'%integer当我们在IDEL中运行该程序时,结果如下所示:图2if语句示例程序运行结果我们看到,如果输入的数字不大于6时,程序马上退出,也就是说,下列代码print'%d大于6'%integer并没有执行;如果输入的数字大于6,才会执行上面的这行代码,以打印一行文字。
三、if/else语句上面的if语句是一种单选结构,也就是说,如果条件为真(即表达式的值为非零),那么执行指定的操作;否则就会跳过该操作。
所以,它选择的是做与不做的问题。
而if/else语句是一种双选结构,它选择的不是做与不做的问题,而是在两种备选行动中选择哪一个的问题。
if/else语句由五部分组成:关键字if、测试条件真假的表达式、表达式结果为真(即表达式的值为非零)时要执行的代码,以及关键字else和表达式结果为假(即表达式的值为零)时要执行的代码。
if/else语句的语法形式如下所示:if表达式:语句体1else:语句体2if/else语句的流程示意图如下所示:图3if/else语句的流程示意图从if/else语句的流程示意图中可以轻易看出,当条件为真(即表达式的值为非零)时,执行语句体1;当条件为假(即表达式的值为零)时,执行语句体2——也就是说,条件无论真假,它总要在两个语句体中选择一个执行,双选结构之称谓由此而来。
下面我们对上面的示例程序进行修改,以演示if/else语句的使用方法。
我们的程序很简单的,只要用户输入一个整数,如果这个数字大于6,那么就输出一行信息,指出输入的数字大于6;否则,输出另一行字符串,指出输入的数字小于等于6。
代码如下所示:#-*-coding:cp936-*-#比较输入的整数是否大于6integer=raw_input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数if integer>6:print'%d大于6'%integerelse:print'%d小于或等于6'%integer当我们在IDEL中运行该程序时,结果如下所示:图4if/else语句示例程序运行结果我们看到,当输入的数字小于3,即条件表达式为假时,执行else字句中的打印语句:print'%d小于或等于6'%integer当输入的数字小于3,即条件表达式为假时,执行else字句中的打印语句:print'%d大于6'%integer但是无论如何,它总得在这两个打印语句中挑一个执行,它不可能两个都跳过。
四、if/elif/else语句有时候,我们需要在多组动作中选择一组执行,这时就会用到多选结构,对于Python语言来说就是if/elif/else语句。
该语句可以利用一系列条件表达式进行检查,并在某个表达式为真的情况下执行相应的代码。
需要注意的是,虽然if/elif/else语句的备选动作较多,但是有且只有一组动作被执行,该语句的语法形式如下所示:if表达式1:语句体1elif表达式2:语句体2……elif表达式m:语句体melse:语句体n注意,最后一个elif子句之后的else子句没有进行条件判断,它实际上处理跟前面所有条件都不匹配的情况,所以通常将else语句所处理的条件称为默认条件,所以else字句必须放在最后。
if/elif/else语句的示意图如下所示:图5if/elif/else语句的示意图下面我们继续对上面的示例程序进行修改,以演示if/elif/else语句的使用方法。
我们还是要用户输入一个整数,如果这个数字大于6,那么就输出一行信息,指出输入的数字大于6;如果这个数字小于6,则输出另一行字符串,指出输入的数字小于6;否则,指出输入的数字等于6。
具体的代码如下所示:#-*-coding:cp936-*-#比较输入的整数是否大于6integer=raw_input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数if integer>6:print'%d大于6'%integerelif integer<6:print'%d小于6'%integerelse:print'%d等于6'%integer当我们在IDEL中运行该程序时,结果如下所示:图6if/elif/else语句示例程序运行结果上面介绍了三种选择语句的基本用法,接下来我们将介绍这些选择结构的结合方式,以及使用选择语句时的注意事项,包括缩进和表达式方面的注意事项。
五、选择结构的结合方式一般说来,结构化编程中的三种基本结构:顺序结构、选择结构和循环结构的结合方式有两种,一种是堆叠方式,另一种是嵌套方式。
堆叠方式比较简单,它把各种结构一个一个罗列在一起就行了,比如我们可以把一个选择结构中的if语句跟顺序结构堆叠在一起,如下所示:图7顺序结构和选择结构的堆叠我们看到,因为三种基本结构都是单入口和单出口(通常用一个小圆圈表示),所以堆叠时只要把一个结构的出口连接到另一个结构的入口就行了。
至于嵌套组合方式,就是用一种结构替换同种结构中的语句体(我们通常用一个矩形框表示),下图表示的是把一个选择结构中的if语句嵌套到另一个if语句中:图8if语句的嵌套观察上图,不难发现,上面的嵌套实际上就是把一个if结构中的语句体(矩形框)替换为另一个if结构。
其他结构的嵌套与之类似,在这里不再一一列举。
现在举一个例子来说明嵌套的应用。
我们要将用户输入的数字跟一个整数进行比较,并输出比较结果。
这本来可以用if/elif/else语句来完成的,但是为了演示选择结构的嵌套,我们这里用if/else语句的嵌套来实现,代码如下所示:#-*-coding:cp936-*-#将输入的数字跟6进行比较integer=raw_input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数if integer>6:print'%d大于6'%integerelse:if integer<6:print'%d小于6'%integerelse:print'%d等于6'%integer当我们在IDEL中运行该程序时,结果如下所示:图9if/else嵌套语句示例程序运行结果六、语句体的缩进问题需要说明的是,嵌套时一定要注意缩进问题。
C语言是用花括号{}来区分语句体,但是Python的语句体是用缩进形式来表示的,如果缩进不正确,会导致逻辑错误。
举例来说,如果我们让用户输入一个数字,如果数字为偶数,则打印两行信息,一行说明数字除以2余数为零,另一行说明判断结果。
具体代码如下所示:#-*-coding:cp936-*-#判断输入的数字是否为偶数integer=raw_input('请输入一个整数:')#取得一个字符串integer=int(integer)#将字符串转换为整数if0==integer%2:print'\n%d除以2余数为零;'%integerprint'所以,%d是个偶数'%integer当我们在IDEL中运行该程序时,结果如下所示:图10正确缩进的结果如果我们改变上面程序中的if语句的第二条打印语句的缩进形式,比如改为:if0==integer%2:print'\n%d除以2余数为零;'%integerprint'所以,%d是个偶数'%integer我们看看运行结果如何:图11错误的缩进将导致逻辑错误如图所示,这里出现了明显的逻辑错误。
由于Python通过缩进来区分语句体的界限,所以当上例中的第二个打印语句不缩进后,已经在if语句的控制范围之外,所以无论if语句的条件是否为真,它都会执行。
七、选择语句中的条件表达式现在,我们对选择语句中的条件表达式进行必要的介绍。
三种选择语句中,条件表达式都是必须可少的组成部分。
当条件表达式的值为零时,表示条件为假;当条件表达式的值为非零时,表示条件为真。
那么哪些表达式可以作为条件表达式呢?基本上,最常用的是关系表达式和逻辑表达式,如:if a==x and b==y:print‘a=x,b=y’除此之外,条件表达式可以是任何数值类型表达式,甚至字符型也可以:图12用字符作为条件表达式的情形八、小结本文详细介绍了Python中的三种选择语句。