欢迎关注微信公众号(医学生物信息学),医学生的生信笔记,记录学习过程。
if
语句
if 表达式:
语句块
表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。如果表达式为真,则执行“语句块”,如果表达式为假,则跳过“语句块”,继续执行后面的语句。
age = 19
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
age = 10
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
number=eval(input('请输入您的6位中奖号码:'))
# 使用if语句
if number==987654: #等值判断
print('恭喜您,中奖了!')
if number!=987654:
print('您未中本期大奖')
print('-------以上if判断的表达式,是通过比较运算符计算出来的,结果是布尔值类型----')
n=98 # 赋值操作
if n%2: # 98%2的余数是0,0的布尔值是False,非0的布尔值为True
print(n,'是奇数') # 由于98%2的余数是0,所以该行代码不执行
if not n%2: # 98%2的余数是0,0的布尔值是False, not False 的结果为True
print(n,'为偶数')
print('---------判断一个字符串是否是空字符串----------')
x=input('请输入一个字符串:')
if x: # 在Python中一切皆对象,每个对象都有一个布尔值,而非空字符串的布尔值为True ,空字符串的布尔值为False
print('x是一个非空字符串')
if not x: # 空字符串的布尔值为False ,取反, not False的结果为True
print('x是一个空字符串')
if-else
语句
if 表达式:
语句块1
else:
语句块2
表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。如果满足条件,则执行“语句块1”,否则执行“语句块2”。
age = 17
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("Sorry, you are too young to vote.")
print("Please register to vote as soon as you turn 18!")
number=eval(input('请输入您的6位中奖号码:'))
# if...else
if number==987654:
print('恭喜您中奖了!')
else:
print('您未中本期大奖!')
#以上代码可以使用条件表达式进行简化
result='恭喜您中奖了!' if number==987654 else '您未中本期大奖!'
print(result)
print('恭喜您中奖了!' if number==987654 else '您未中本期大奖!')
if-elif-else
语句
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
...
else:
语句块n
表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。如果表达式为真,则执行语句,如果表达式为假,则跳过该语句,进行下一个
elif
的判断,只有在所有表达式都为假的情况下,才会执行else
中的语句。
age = 12
if age < 4:
print("Your admission cost is $0.")
elif age < 18:
print("Your admission cost is $25.")
else:
print("Your admission cost is $40.")
为了让代码更简洁,可不在
if-elif-else
代码块中打印门票价格,而是只在其中设置门票价格,并在它后面添加一个函数调用print()
:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 25
else:
price = 40
print(f"Your admission cost is ${price}.")
score=eval(input('请输入您的成绩:'))
# 多分支结构
if score<0 or score>100:
print('成绩有误!')
elif 0<=score<60:
print('E')
elif 60<=score<70:
print('D')
elif 70<=score<80:
print('C')
elif 80<=score<90:
print('B')
else:
print('A')
省略else
代码块
Python
并不要求if-elif
结构后面必须有else
代码块。在一些情况下,else
代码块很有用;而在其他情况下,使用一条elif
语句来处理特定的情形更清晰:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 25
elif age < 65:
price = 40
elif age >= 65:
price = 20
print(f"Your admission cost is ${price}.")
最后的elif
代码块在顾客年满65岁时,将价格设置为20美元。这比使用 else
代码块更清晰一些。经过这样的修改,每个代码块都仅在通过了相应的条件测试时才会执行。
else
是一条包罗万象的语句,只要不满足任何if
或elif
中的条件测试,其中的代码就会执行。这可能引入无效甚至恶意的数据。如果知道最终要测试的条件,应考虑使用一个elif
代码块来代替else
代码块。这样就可以肯定,仅当满足相应的条件时,代码才会执行。
if
语句的嵌套
3种形式的if
语句可以互相嵌套。
if
语句可以有多种嵌套方式,用户在开发程序时可以根据自身需要选择合适的嵌套方式,但一定要严格控制好不同级别代码块的缩进量。
answer=input('请问,您喝酒了吗?')
if answer=='y': # answer的值为y表示喝酒了
proof=eval(input('请输入酒精含量:'))
if proof<20:
print('构不成酒驾,祝您一路平安')
elif proof<80: # 20<=proof<80
print('已构成酒驾,请不要开车')
else:
print('已达到了醉驾标准,请千万不要开车')
else:
print('你走吧,没你啥事儿!')
参考资料
[1] https://www.bilibili.com/video/BV1wD4y1o7AS/?p=7&share_source=copy_web&vd_source=d40f0854606900163a564a59cfa3027c
[2] 零基础Python学习笔记 明日科技编著
[3] Python编程从入门到实践(第3版)