Python学习日记-判断语句

本章目录

  • Part One:初识if语法
  • Part Two:进阶if语法
  • Part Three:完整if语法
  • Part Four:if语法注意事项

初识if语法

if的英文释义是“如果,假设”的意思,在Python中也用其作为条件判断,可以使得一部分代码只在满足某个条件时才会被执行。
简单的if语句的语法格式是:

if 条件:
    # 满足条件执行的代码块

例如

age = 18
if age >= 18:
    print("Hey, boy!")
    print("You are a man now!")

结果为:

Hey, boy!
You are a man now!

在这里,如果age >= 18为False,那么程序将不会执行两条 print 语句。
虽然都是用 if 关键词定义判断,但与Java语言不同,Python不使用 {} 将 if 语句控制的区域包含起来。Python使用的是缩进方法。同时,也不需要用 () 将判断条件括起来。
缩进在Python中具有非常重要的地位,同样的缩进代表一组代码块,不同的缩进就是不同的代码块,例如:

age = 18
if age >= 18:
    print("Hey, boy!")
        print("You are a man now!")

就会报缩进错误:

IndentationError: unexpected indent

同样的,如下缩进,代码的执行逻辑就变了:

age = 16
if age >= 18:
    print("Hey, boy!")
print("You are a man now!")

其中第一条语句是条件判断的代码块,第二条语句不包含在条件判断中,所以结果为:

You are a man now!

进阶if语法

如果希望在不满足条件时,也有一部分代码会被执行,则可以匹配上else语句。
else的英文释义是“除此以外”,是对if的条件判断的结果直接取反,综合的语法结构是:

if 条件:
    # 满足条件执行的代码块
else:
    # 不满足条件执行的代码块

if语句中可以没有else,但是,else必须匹配上if才可以使用。
与if的语法一样,else也是使用缩进组织代码块,例如:

age = 16
if age >= 18:
    print("Hey, boy!")
    print("You are a man now!")
else:
    print("Hey, boy!")
    print("This is gonna be your league in a little while, but I appreciate you giving us this year.")

结果为:

Hey, boy!
This is gonna be your league in a little while, but I appreciate you giving us this year.

完整if语法

如果类似的条件是需要多次判断,并且每个判断中都会执行不同的代码,则可以使用多重if的语法,其语法:

if 条件1:
    # 代码块1
elif 条件2:
    # 代码块2
elif 条件3:
    # 代码块3
else:
    # 代码块4

例如:

age = 16
if age <= 6:
    print("Hey, LeBron!")
    print("You will become a basketball superstar in the future!")
elif 6 < age <= 18:
    print("Hey, LeBron!")
    print("You are strong enough, go to NBA!")
elif 18 < age <= 25:
    print("Hey, LeBron!")
    print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
else:
    print("Hey, LeBron!")
    print("Give me a chance, I just wanna win once...")

结果为:

Hey, LeBron!
You are strong enough, go to NBA!

if语句也可以嵌套使用,但是要注意使用好缩进即可。

if语法注意事项

  • 判断条件值的测试
    Python不仅仅可以使用布尔型变量作为条件,它可以直接在if中使用任何表达式作为条件.
    大部分表达式的值都会被当作True,但以下表达式值会被当作False:False,None,0,空字符串,空列表,空字典,空集合。
    我们可以用代码一一来验证:

验证True和False

var1 = False
var2 = True
if var1:
    print("False")
else:
    print("True")
if var2:
    print("True")

结果为:

True
True

验证None

var1 = None
var2 = "TAG"
if var1:
    print("None")
else:
    print("Not None")
if var2:
    print("Not None")

结果为:

Not None
Not None

验证0

var1 = 0
var2 = 1
if var1:
    print("0")
else:
    print("Not 0")
if var2:
    print("Not 0")

结果为:

Not 0
Not 0

验证空字符串

var1 = ""
var2 = " "
if var1:
    print("Empty String")
else:
    print("Not Empty String")
if var2:
    print("Not Empty String")

注意空格也是一个字符串,所以结果为:

Not Empty String
Not Empty String

验证空列表

var1 = ["Java", "Android", "Python"]
var2 = []
if var1:
    print("The first element is:{}.".format(var1[0]))
else:
    print("The list is empty.")
if var2:
    print("The first element is:{}.".format(var1[0]))
else:
    print("The list is empty.")

结果为:

The first element is:Java.
The list is empty.

同理,也适用于字典,集合等,不过这种写法不推荐,最好还是是用len语法来验证是否为空。
总结一下,只要条件是非零数值、非空字符串、非空list等,就判断为True,否则为False。

  • input注意事项
    input和print是经常配套使用的一组代码,print是输出到控制台,而input是从控制台读取用户输入。
    需要注意的是,从控制台读取的是一个字符串,如果要和其它类型的数据进行比较,需要做相应的转换,否则会报错,例如:
# 将String类型的input转为int类型,然后再去比较
age = int(input())
if age <= 6:
    print("Hey, LeBron!")
    print("You will become a basketball superstar in the future!")
elif 6 < age <= 18:
    print("Hey, LeBron!")
    print("You are strong enough, go to NBA!")
elif 18 < age <= 25:
    print("Hey, LeBron!")
    print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
else:
    print("Hey, LeBron!")
    print("Give me a chance, I just wanna win once...")

结果为:

7
Hey, LeBron!
You are strong enough, go to NBA!

你可能感兴趣的:(Python学习日记-判断语句)