目录
选择结构
条件语句
语法
Python 条件语句是通过一条或多条语句的执行结果(True
或者 False
)来决定执行的代码块。
Python 程序语言指定任何非 0
和非空(null
)值为 True
,0
或者 null
为 False
。
Python 编程中 if
语句用于控制程序的执行,基本形式为:
if 判断条件:
执行语句......
else:
执行语句......
其中 '判断条件'
成立时(非零),则执行后面的语句,而执行内容可以有许多行,以缩进来区分不同层级。
else
为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
例:
a = False
name = 'abc'
if name == 'python': # 判断变量是否为 python
a = True # 条件成立时设置标志为真
print('welcome word') # 并输出欢迎信息
else:
print(name) # 条件不成立时输出变量名称'
输出:
abc
if
语句的判断条件可以用 >
(大于)、<
(小于)、==
(等于)、>=
(大于等于)、<=
(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式
if 判断条件1:
执行语句1......
elif 判断条件2:
执行语句2......
elif 判断条件3:
执行语句3......
else:
执行语句4......
例:
num = 5
if num == 3: # 判断num的值
print('hello')
elif num == 2:
print('user')
elif num == 1:
print('worker')
elif num < 0: # 值小于零时输出
print('error')
else:
print('happy') # 条件均不成立时输出
输出:
happy
由于 Python 并不支持 Switch 语句,所以多个条件判断,只能用 elif
来实现。
如果判断需要多个条件需同时判断时,可以使用 or
(或),表示两个条件有一个成立时判断条件成功。
使用 and
(与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
num0 = 9
if num0 > 0 and num0 < 10: # 判断值是否在0~10之间
print('hello')
num1 = 10
if num1 < 0 or num1 > 10: # 判断值是否在小于0或大于10
print('hello')
else:
print('world')
输出:
hello
world
当 if
有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行。
此外 and
和 or
的优先级低于 >
(大于)、<
(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
简单的语句组
语法
你也可以在同一行的位置上使用 if
条件判断语句
num = 10
if(num == 10):print("nmu的值为",num)
print("hei")
输出:
nmu的值为 10
hei
三元运算
三元运算的语法
我们从一个具体的例子切入本节内容。假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if ... else ...
语句
if a > b:
max = a
else:
max = b
但是 Python 提供了一种更加简洁的写法
max = a if a > b else b
这是一种类似于其它编程语言中三目运算符 ? :
的写法。
Python 是一种极简主义的编程语言,它没有引入 ? :
这个新的运算符,而是使用已有的 if ... else ...
关键字来实现相同的功能。
使用 if ... else ...
实现三目运算符(条件运算符)的格式
语法:
exp1 if contion else exp2
condition
是判断条件,exp1
和 exp2
是两个表达式:
1.如果 condition
成立(结果为真),就执行 exp1
,并把 exp1
的结果作为整个表达式的结果;
2.如果 condition
不成立(结果为假),就执行 exp2
,并把 exp2
的结果作为整个表达式的结果。
前面的语句 max = a if a > b else b
的含义是:
1.如果 a > b
成立,就把 a
作为整个表达式的值,并赋给变量 max
;
2.如果 a > b
不成立,就把 b
作为整个表达式的值,并赋给变量 max
。
三元运算的嵌套
Python 三元运算支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if
和 else
的配对,例如:
a if a > b else c if c > d else d
可以理解为:
a if a > b else (c if c > d else d)
例如:
使用 Python 三元运算判断两个数字的关系:
a = int(input())
b = int(input())
print('a的值大于b的值') if a > b else (
print('a的值小于b的值') if a < b else print('a的值等于b的值')
)
这个程序是一个嵌套的三元运算。程序先对 a>b
求值,如果该表达式为 True
,程序就返回执行第一个表达式 print('a的值大于b的值')
,否则将继续执行 else
后面的内容,也就是:
(print('a的值小于b的值') if a < b else print('a的值等于b的值'))
进入该表达式后,先判断 a < b
是否成立,如果 a < b
的结果为 True
,将执行 print('a的值小于b的值')
,否则执行 print('a的值等于b的值')
。
选择结构练习-1
判断三角形
描述
请从标准输入流(控制台)中获取 a、b、c,它们分别代表三角形的三条边长,判断这三条边是否能组成一个三角形,当判断为是时,你应该使用 print 语句输出 Is a triangle,
当判断为否时,则使用 print 语句输出 Not a triangle。
a = int(input())
b = int(input())
c = int(input())
'''1、
print("Is a triangle") if a+b>c and a+c>b and b+c>a else(
print("Not a triangle")
)
'''
'''2、
lis = [a, b, c]
if 2 * max(lis) < sum(lis) :
print("Is a triangle")
else:
print("Not a triangle")
'''
'''3、
num_list = [int(a),int(b),int(c)]
num_list.sort()
if (num_list[0] + num_list[1] > num_list[2]) and (num_list[2]-num_list[0] < num_list[1]):
print("Is a triangle")
else:
print("Not a triangle")
'''
#三种不同的解法