python中选择结构通过语句实现_Python基础语法:选择结构使用

条件表达式

绝大部分合法的Python表达式都可以作为条件表达式。

在选择和循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为与True等价。

>>> if 666: #使用整数作为条件表达式 print(9) 9 >>> a = [3, 2, 1] >>> if a: #使用列表作为条件表达式 print(a) [3, 2, 1]

>>> a = [] >>> if a: #空列表等价于False print(a) else: print('empty') empty >>> i = s = 0 >>> while i <= 10: #使用关系表达式作为条件表达式 s += i

i += 1 >>> print(s) 55

>>> i = s = 0 >>> while True: #使用常量True作为条件表达式 s += i

i += 1 if i > 10: #符合特定条件时使用break语句退出循环 break >>> print(s) 55 >>> s = 0 >>> for i in range(0, 11, 1): #遍历序列元素 s += i >>> print(s) 55

(1)关系运算符

Python中的关系运算符可以连续使用,这样不仅可以减少代码量,也比较符合人类的思维方式。

>>> print(1<2<3) #等价于1<2 and 2<3 True >>> print(1<2>3) False >>> print(1<3>2) True

在Python语法中,条件表达式中不允许使用赋值运算符“=”,避免了误将关系运算符“==”写作赋值运算符“=”带来的麻烦。在条件表达式中使用赋值运算符“=”将抛出异常,提示语法错误。

>>> if a=3: #条件表达式中不允许使用赋值运算符 SyntaxError: invalid syntax >>> if (a=3) and (b=4): SyntaxError: invalid syntax

(2)逻辑运算符

逻辑运算符and、or、not分别表示逻辑与、逻辑或、逻辑非。对于and而言,必须两侧的表达式都等价于True,整个表达式才等价于True。

对于or而言,只要两侧的表达式中有一个等价于True,整个表达式就等价于True;对于not而言,如果后面的表达式等价于False,整个表达式就等价于True。

逻辑运算符and和or具有短路求值或惰性求值的特点,可能不会对所有表达式进行求值,而是只计算必须计算的表达式的值。

>>> 3 and 5 #整个表达式的值是最后一个计算的子表达式的值 5 >>> 3 or 5 3 >>> 0 and 5 #0等价于False 0 >>> 0 or 5 5 >>> not [1, 2, 3] #非空列表等价于True False >>> not {} #空字典等价于False True

选择结构

常见的选择结构有单分支选择结构、双分支选择结构、多分支选择结构以及嵌套的分支结构,也可以构造跳转表来实现类似的逻辑。

循环结构和异常处理结构中也可以带有“else”子句,可以看作是特殊形式的选择结构。

单分支选择结构

例1 编写程序,输入使用空格分隔的两个整数,然后按升序输出。

x = input('Input two number:') a, b = map(int, x.split()) if a > b: a, b = b, a #序列解包,交换两个变量的值 print(a, b)

双分支选择结构

例2 求解鸡兔同笼问题。

jitu, tui = map(int, input('请输入鸡兔总数和腿总数:').split()) tu = (tui - jitu*2) / 2 if int(tu) == tu: print('鸡:{0},兔:{1}'.format(int(jitu-tu), int(tu))) else: print('数据不正确,无解')

Python还提供了一个三元运算符,并且在三元运算符构成的表达式中还可以嵌套三元运算符,可以实现与选择结构相似的效果。语法为

value1 if condition else value2

当条件表达式condition的值与True等价时,表达式的值为value1,否则表达式的值为value2。

>>> b = 6 if 5>13 else 9 #赋值运算符优先级非常低 >>> b 9

多分支选择结构

if 表达式1:

语句块1

elif 表达式2:

语句块2

elif 表达式3:

语句块3

else:

语句块4

其中,关键字elif是else if的缩写。

例3 使用多分支选择结构将成绩从百分制变换到等级制。

def func(score): if score > 100 or score < 0: return 'wrong score.must between 0 and 100.' elif score >= 90: return 'A' elif score >= 80: return 'B' elif score >= 70: return 'C' elif score >= 60: return 'D' else: return 'F'

选择结构的嵌套

例4 使用嵌套选择结构将成绩从百分制变换到等级制。

def func(score): degree = 'DCBAAE' if score > 100 or score < 0: return 'wrong score.must between 0 and 100.' else: index = (score - 60) // 10 if index >= 0: return degree[index] else: return degree[-1]

本文地址:https://blog.csdn.net/qq_46144237/article/details/108241041

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值