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!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,145评论 0 13
  • Android 官方配置构建介绍aapt命令介绍参考老罗的文章 再来一张详细的图 aapt打包过程 1. 解析An...
    第八区阅读 442评论 0 2
  • 过了这么久再次拾起这个文案,依稀已经不记得当时的情景,只记得那是秋天刚刚开始的时候。 回家帮着母亲收秋,母亲却为了...
    大道至简_694e阅读 137评论 0 0
  • 3月8日北京,晴。最近总感觉自己的学习方法不对,又有点说不清,就是觉得效率低。于是给自己设立了个小任务,希望用完成...
    博峰庸者阅读 608评论 0 49