菜鸟Python笔记-基础篇03:判断语句和循环语句

一、判断语句介绍

如果某些条件满足,才能做某件事情;条件不满足时,则不能做,这就是所谓的判断。
不仅生活中有,在软件开发中"判断"功能也经常会用到。

二、if语句

if判断语句介绍

  • if语句是用来进行判断的,其使用格式如下:
if 要判断的条件:
        条件成立时,要做的事情
  • demo1:
age = 30

    print("------if判断开始------")

    if age >= 18:
        print("我已经成年了")

    print("------if判断结束------")
  • 运行结果:
------if判断开始------
    我已经成年了
------if判断结束------
  • if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。
  • 注意:代码的缩进为一个tab键,或者4个空格。

if-else

在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?

答:使用 if-else

if-else的使用格式

if 条件:
    满足条件时要做的事情1
    满足条件时要做的事情2
    满足条件时要做的事情3
    ...(省略)...
else:
    不满足条件时要做的事情1
    不满足条件时要做的事情2
    不满足条件时要做的事情3
    ...(省略)...

demo1:

chePiao = 1 # 用1代表有车票,0代表没有车票
if chePiao == 1:
    print("有车票,可以上火车")
    print("终于可以见到Ta了,美滋滋~~~")
else:
    print("没有车票,不能上车")
    print("亲爱的,那就下次见了"

结果1:有车票的情况

有车票,可以上火车
终于可以见到Ta了,美滋滋~~~

结果2:没有车票的情况

没有车票,不能上车
亲爱的,那就下次见了

三、关系、逻辑运算符

比较(即关系)运算符

python中的比较运算符如下表:

运算符 描述 示例
== 检查两个操作数的值是否相等,如果是则条件变为真。 如a=3,b=3,则(a == b) 为 True
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3,则(a != b) 为 True
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 如a=7,b=3,则(a > b) 为 True
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 如a=7,b=3,则(a < b) 为 False
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3,则(a >= b) 为 True
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3,则(a <= b) 为 True
>>> # 关系运算符
... 
>>> # == 等于:表示左右两个操作数是否相等,如果相等则整个表达式的值为 True;不相等则为False
... num1 = 15
>>> num2 = 20
>>> 
>>> print(num1 == num2)
False
>>> 
>>> # != 不等于
... print(num1 != num2)
True

逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 True and False, 返回 False。
or x or y 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 False or True, 返回 True。
not not x 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not True 返回 False, not False 返回 True
>>> # 逻辑运算符
... 
>>> # and : 左右表达式都为True,整个表达式结果才为 True
... if (1 == 1) and (10 > 3):
...     print("条件成立!")
... 
条件成立!

>>> # or : 左右表达式有一个为True,整个表达式结果就为 True
... if (1 == 2) or (10 > 3):
...     print("条件成立!")
... 
条件成立!

>>> # not:将右边表达式的逻辑结果取反,Ture变为False,False变为True
... if not (1 == 2):
...     print("条件成立!")
... 
条件成立!

>>>

四、elif

如果有这样一种情况:当xxx1满足时做事情1;当xxx1不满足、xxx2满足时做事情2;当xxx2不满足、xxx3满足时做事情3,那该怎么实现呢?

答:elif

elif的功能

elif的使用格式如下:

if xxx1:
    事情1
elif xxx2:
    事情2
elif xxx3:
    事情3
  • 说明:
    • 当xxx1满足时,执行事情1,然后整个if结束
    • 当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束
    • 当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束

注意点

可以和else一起使用

if 性别为男性:
   输出男性的体重
   ...
elif 性别为女性:
   输出女性的体重
   ...
else:
   第三种性别的体重
   ...
  • 说明:
    • 当 “性别为男性” 满足时,执行 “输出男性的体重”的相关代码
    • 当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的体重”的相关代码
    • 当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的体重”相关代码

elif必须和if一起使用,否则出错

else一般用在最后,即所有条件都不满足时使用

五、if嵌套

通过学习if的基本用法,已经知道了

  • 当需要满足条件去做事情的这种情况需要使用if
  • 当满足条件时做事情A,不满足条件做事情B的这种情况使用if-else

有些情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?

答:if嵌套

if嵌套的格式

if 条件1:

    满足条件1 做的事情1
    满足条件1 做的事情2

    if 条件2:
        满足条件2 做的事情1
        满足条件2 做的事情2
  • 说明
    • 外层的if判断,也可以是if-else
    • 内层的if判断,也可以是if-else
    • 根据实际开发的情况,进行选择

if嵌套的应用

demo1:

chePiao = 1     # 用1代表有车票,0代表没有车票
daoLenght = 9     # 刀子的长度,单位为cm

if chePiao == 1:
    print("有车票,可以进站")
    if daoLenght < 10:
        print("通过安检")
        print("终于可以见到Ta了,美滋滋~~~")
    else:
        print("没有通过安检")
        print("刀子的长度超过规定,等待警察处理...")
else:
    print("没有车票,不能进站")
    print("亲爱的,那就下次见了")

结果1:chePiao = 1;daoLenght = 9

有车票,可以进站
通过安检
终于可以见到Ta了,美滋滋~~~

结果2:chePiao = 1;daoLenght = 20

有车票,可以进站
没有通过安检
刀子的长度超过规定,等待警察处理...

结果3:chePiao = 0;daoLenght = 9

没有车票,不能进站
亲爱的,那就下次见了

结果4:chePiao = 0;daoLenght = 20

没有车票,不能进站
亲爱的,那就下次见了

六、if的补充知识

区间比较:

a = 10
1<a<20  # True
11<a<20  # False

三元运算符:

格式:

变量 = 值1 if 条件 else 值2

当条件成立时把 值1 赋值给变量,条件不成立时把 值2 赋值给变量。

示例:

a = 10
b = 20
c = a if a>b else b
print(c)  # 条件不成立,把 b 的值赋给 c,也就是 c 的值为 20

数字的逻辑运算:

a = 0
b = 1
c = 3

# and 运算,只要有一个值为 0 则结果为0,否则结果为最后一个非 0 数字
a and b  # 0
b and a  # 0
c and b  # 1
b and c  # 3

# or 运算,只有所有值为 0 结果才为0,否则结果为第一个非 0 数字
a or a  # 0
a or b  # 1
b or a  # 1
c or b  # 3
b or c  # 1

七、循环语句介绍

软件开发中循环的使用场景

跟媳妇承认错误,说一万遍"媳妇儿,我错了"

print("媳妇儿,我错了")
    print("媳妇儿,我错了")
    print("媳妇儿,我错了")
    ...(还有99997遍)...

使用循环语句一句话搞定:

i = 0
while i < 10000:
    print("媳妇儿,我错了")
    i += 1

总结

  • whileif的用法基本类似,区别在于:if 条件成立,则执行一次; while 条件成立,则重复执行,直到条件不成立为止。
  • 一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成。
  • 循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环。

八、while循环

while循环的格式

while 条件:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...

demo:

i = 0
while i < 5:
    print("当前是第%d次执行循环" % (i + 1))
    print("i=%d" % i)
    i+=1

结果:

当前是第1次执行循环
i=0
当前是第2次执行循环
i=1
当前是第3次执行循环
i=2
当前是第4次执行循环
i=3
当前是第5次执行循环
i=4

九、while循环应用

1. 计算1~100的累积和(包含1和100)

参考代码如下:

i = 1
sum = 0
while i <= 100:
    sum = sum + i
    i += 1

print("1~100的累积和为:%d" % sum)

计算1~100之间偶数的累积和(包含1和100)

参考代码如下:

i = 1
sum = 0
while i <= 100:
    if i % 2 == 0:
        sum = sum + i
    i+=1

print("1~100的累积和为:%d" % sum)

十、break和continue

1. break

break 会立即终止循环,跳出当前循环,执行之后的代码:

i = 10

while i > 0:
    print("妈,还要我刷啊~~~~~~~~~")
    if i == 5:
        print('好了,不用刷了')
        break

    print("正在刷 %d 个碗" % i)
    i -= 1

print('程序结束')

运行结果:

妈,还要我刷啊~~~~~~~~~
正在刷 10 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 9 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 8 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 7 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 6 个碗
妈,还要我刷啊~~~~~~~~~
好了,不用刷了
程序结束

2. continue

continue 会立即结束当前这一次循环,跳转到下一轮循环的条件判断,代码还在当前循环中执行。

i = 10

while i > 0:
    print("妈,还要我刷啊~~~~~~~~~")
    if i == 5:
        print('好了,不用刷了')

        i -= 1  # continue 之前要注意修改 i 的值,否则容易导致死循环
        continue

    print("正在刷 %d 个碗" % i)
    i -= 1

print('程序结束')

运行结果:

妈,还要我刷啊~~~~~~~~~
正在刷 10 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 9 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 8 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 7 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 6 个碗
妈,还要我刷啊~~~~~~~~~
好了,不用刷了
妈,还要我刷啊~~~~~~~~~
正在刷 4 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 3 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 2 个碗
妈,还要我刷啊~~~~~~~~~
正在刷 1 个碗
程序结束

3. 注意点

  • break/continue只能用在循环中,除此以外不能单独使用
  • break/continue在嵌套循环中,只对最近的一层循环起作用

十一、while循环的嵌套及应用

类似if的嵌套,while嵌套就是:while里面还有while

while嵌套的格式

while 条件1:

    条件1满足时,做的事情1
    条件1满足时,做的事情2
    条件1满足时,做的事情3
    ...(省略)...

    while 条件2:
        条件2满足时,做的事情1
        条件2满足时,做的事情2
        条件2满足时,做的事情3
        ...(省略)...

while嵌套应用一

要求:打印如下图形:

*
* *
* * *
* * * *
* * * * *

参考代码:

i = 1
while i <= 5:
    j = 1
    while j <= i:
        print("* ", end = '')  # end = '',为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串
        j += 1

    print("\n")
    i += 1

while嵌套应用二:九九乘法表

九九乘法表

参考代码:

i = 1
while i<=9:
    j=1
    while j<=i:
        print("%d*%d=%-2d " % (j, i, i*j), end = '')  # %-2d:2位左对齐 不够两位补空格
        j+=1
    print('\n')
    i+=1

十二、for循环

  • while循环一样,for可以完成循环的功能。

  • 在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

for循环的格式

for 临时变量 in 列表或者字符串等可迭代对象:
    循环满足条件时执行的代码

demo1:

name = 'itheima'

for x in name:
    print(x)

运行结果如下:

i
t
h
e
i
m
a

demo2:

name = 'itheima'
for x in name:
    if x == 'e':
        print("不能使用字符 e")
    else:
        print(x)

运行结果如下:

i
t
h
不能使用字符 e
i
m
a

demo3:
for 循环的 else 语句只有当循环正常结束才会执行,也就是没有被 break 打断才会执行

name = 'itcast'
for x in name:
    if x == 'e':
        print("不能使用字符 e")
        break
    else:
        print(x)
else:
    print('没有出现禁止使用的字符')

运行结果如下:

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

推荐阅读更多精彩内容