第5章 if语句

1 条件测试

  • if语句的核心是一个值为True或False的表达式,这种表达式被称为条件测试

Python根据条件测试的值为True或False来决定是否执行if语句中的代码。

  • Python中检查是否相等时严格区分大小写

注意:

  • 检查变量的值,可将变量的值转换为小写,再进行比较
  • 有时候检查两个值是否不相等的效率更高
# if语句
a = int(input("Please enter a word: "))
print(a, type(a))
if a > 0:
    print("a > 0")
if 1 > 0:
    print("Hello, World!")
    print("1 > 0")
print("This is my house.")
# if...else语句
a = int(input("Please enter a word: "))
print(a, type(a))
if a > 0:
    print("a > 0")
else:
    print("a <= 0")
if 1 > 0:
    print("Hello, World!")
    print("1 > 0")
print("This is my house.")
# if...elif...else语句
a = int(input("Please enter a word: "))
print(a, type(a))
if a > 0:
    print("a > 0")
elif a > 10:
    print("a > 10")

2 检查多个条件

2.1 使用and关键字检查多个条件

and检查两个条件都为True

如果每个测试都通过了,整个表达式就为True。
如果只要有一个测试没有通过,整个表达式就为False

2.2 使用or关键字检查多个条件

or检查多个条件,至少有一个条件满足就能通过整个测试。

仅当两个测试都没有通过时,使用or表达式才为False

2.3 使用in关键字判断

in判断特定的值是否已包含在列表中。

2.4 使用not in关键字判断

not in判断特定值未包含在列表中。

3 布尔表达式

布尔表达式,即条件测试的别名。

条件测试:一个值为True或False的表达式。

4 缩进

if语句中缩进的作用和for循环中相同。如果条件测试通过,将执行if语句后面所有缩进的代码行,否则将忽略后面所有的代码行

5 if-else语句

  • 条件测试通过了,执行一个操作,并在没有通过时,执行另外一个操作。
  • else语句让程序员能够指定条件测试未通过时要执行的操作。

6 if-elif-else结构

  • Python只执行if-elif-else结构中的一个代码块,python依次检查每个条件测试,直到遇到通过了的条件测试
  • 测试通过后,Python将执行紧跟在其后的代码,并跳过余下测试
  • Python并不要求if-elif结构后面必须有else代码块

如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码块。这样,程序员才能坑定,仅当满足相应条件时,代码才会执行。

7 if语句的格式规范

在条件测试的格式设置方面,PEP 8提供的建议是:在诸如==、>=和<=等比较运算符两边各添加一个空格。这样的空格增强代码的可读性

例如: if age < 4:

动手试一试

5-1 条件测试:

animal = 'cat'
print("Is animal == 'cat'? I predict True.")
print(animal == 'cat')
print("\nIs animal == 'dog'? I predict False.")
print(animal == 'dog')

5-2 更多的条件测试:

name1 = 'Mike'
name2 = 'Kate'
if name2 == name1:
    print("相等")
else:
    print("不相等")
name3 = 'STEVE'
print(name3.lower())
num1 = 1
num2 = 2
if num2 == num1:
    print("相等")
else:
    print("不相等")
if num2 > num1:
    print("num2 大于 num1")
else:
    print("num2 小于 num1")
if num2 >= num1:
    print("num2 大于等于 num1")
else:
    print("num2 小于等于 num1")
num3 = 3
if num3 > 0 and num3 < 4:
    print("num3大于0并且小于4")
if num3 >0 or num3 < 4:
    print("num3大于0或者小于4")
numbers = list(range(1, 11))
if 9 in numbers:
    print("9在列表中")
else:
    print("9不在列表中")

5-3 外星人颜色#1:

alien_color = 'green'
if alien_color == 'green':
    print("You have 5 points.")
alien_color = 'red'
if alien_color == 'green':
    print("You have 5 points")

5-4 外星人颜色#2:

alien_color = 'green'
if alien_color == 'green':
    print("You have 5 points.")
else:
    print("You have 10 points.")

5-5 外星人颜色#3:

alien_color = 'green'
if alien_color == 'green':
    print("You have 5 points.")
elif alien_color == 'yellow':
    print("You have 10 points.")
elif alien_color == 'red':
    print("You have 15 points.")

5-6 人生的不同阶段:

import random
age = random.randint(0, 100)
print("You are " + str(age) + " years old.")
if age < 2:
    print("You are baby.")
elif age < 4:
    print("You're a toddler.")
elif age < 13:
    print("You are a child.")
elif age < 20:
    print("You are  a teenager.")
elif age < 65:
    print("You are an adult.")
else:
    print("You are an old people.")

5-7 喜欢的水果:

favorite_fruit = ['apple', 'peach', 'banana', 'watermelon']
if 'apple' in fruit:
    print("apple is in the list.")
if 'peach' in fruit:
    print("peach is in the list.")
if 'banana' in fruit:
    print("banana is the list.")
if 'watermelon' in fruit:
    print("watermelon is in the list.")

5-8 以特殊方式跟管理员打招呼:

userNames = ['cat', 'dog', 'bird', 'fish', 'admin']
message = "Hello admin, would you like to see a status report?"
for userName in userNames:
    if userName == 'admin':
        print(message)
    else:
        print("Hello " + userName + ", thank for you logging in again.")

5-10 检查用户名:

current_users = ['dog','cat', 'fish', 'admin', 'kate']
new_users = ['dog', 'mike', 'steve', 'jobs', 'ava']
for current_user in current_users:
    current_user = current_user.lower()
for new_user in new_users:
    new_user = new_user.lower()
for new_user in new_users:
    if new_user in current_users:
        print("请输入别的用户名。")
    else:
        print("这个用户名未被使用")

5-11 序数:

numbers = list(range(1, 10))
for number in numbers:
    print(number)
    if number == 1:
        print(str(number)+ "st\n")
    elif number == 2:
        print(str(number) + "nd\n")
    elif number == 3:
        print(str(number) + "rd\n")
    else:
        print(str(number) + "th\n")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值