【20天搞定Python基础】第四天:if语句的多种形式和while循环
千锋python
编辑于 2021年04月20日 11:11
收录于文集
共23篇

上次我们提到了一些if语句的内容,知道在开发的时候很多情况都会使用if判断,比如:用户登陆、付款、人脸识别、或者指纹识别开门等等都会用到判断。这个最基本的知识。

分支判断

上一章提到了

代码块
JavaScript
自动换行
复制代码
if 要判断的条件:
    条件成立时,要做的事情
复制成功

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

答:使用 if-else

if...else就像你走在一个人字路口,面前有两条路,你会选择走哪一条路。每一条路的结局不同。

if-else的使用格式:

代码块
JavaScript
自动换行
复制代码
    if 条件:
        满足条件时的操作
    else:
        不满足条件时的操作
复制成功

按照这个格式我们写一个例子吧!

代码块
JavaScript
自动换行
复制代码
ticket = 1 # 用1代表有车票,0代表没有车票
if ticket == 1:
    print("有车票,可以上火车")
    print("终于可以见到Ta了,美滋滋~~~")
else:
    print("没有车票,不能上车")
    print("亲爱的,那就下次见了")
复制成功

结果1:有车票的情况

代码块
JavaScript
自动换行
复制代码
    有车票,可以上火车
    终于可以见到Ta了,美滋滋~~~
复制成功

结果2:没有车票的情况

代码块
JavaScript
自动换行
复制代码
    没有车票,不能上车
    亲爱的,那就下次见了
复制成功

再比如我们登陆就是很典型的if...else结构:

代码块
JavaScript
自动换行
复制代码
username = input('请输入用户名: ')
password = input('请输入密码: ')
# 用户名是admin且密码是123456则身份验证成功否则身份验证失败
if username == 'admin' and password == '123456':
    print('身份验证成功!')
else:
    print('身份验证失败!')
复制成功

但是还有些场景是需要有多重的判断的。比如:当条件A满足时做事情1;当条件A不满足、条件B满足时做事情2;当条件B不满足、条件C满足时做事情3,那该怎么实现呢?

那通过程序如何实现呢?

答:elif

elif的使用格式如下:

代码块
JavaScript
自动换行
复制代码
    if xxx1:
        事情1
    elif xxx2:
        事情2
    elif xxx3:
        事情3
复制成功

说明:

  • 当xxx1满足时,执行事情1,然后整个if结束

  • 当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束

  • 当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束

代码块
JavaScript
自动换行
复制代码
choice = input('请输入你喜欢的游戏:和平精英、王者荣耀、英雄联盟')
if choice=='和平精英':
   print('特种兵加油!')
elif choice == '王者荣耀':
  print('这么多英雄人物喜欢')
elif choice == '英雄联盟':
    print('英雄们加油啊!')
复制成功

可以和else一起使用

代码块
JavaScript
自动换行
复制代码
   if 性别为男性:
       输出男性的体重
       ...
   elif 性别为女性:
       输出女性的体重
       ...
   else:
       第三种性别的体重
       ...
复制成功

说明:

  • 当 “性别为男性” 满足时,执行 “输出男性的体重”的相关代码

  • 当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的体重”的相关代码

  • 当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的体重”相关代码

elif必须和if一起使用,否则出错 else 一般用在最后,即所有条件都不满足时使用

还有一个很重要的知识点,就是if嵌套思考一个问题:当你坐火车或者地铁时,先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?

if嵌套的格式:

代码块
JavaScript
自动换行
复制代码
  if 条件1:

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

        if 条件2:
            满足条件2 做的事情1
            满足条件2 做的事情2
复制成功

来看看上面的问题使用嵌套是怎么完成的吧!

代码块
JavaScript
自动换行
复制代码
ticket = 1     # 用1代表有车票,0代表没有车票
knife_length = 9     # 刀子的长度,单位为cm

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

结果会有几种呢?我说是四种结果。你们试试看有几种。

循环语句

你操作电脑的时候有没有遇到循环的情况?比如登陆,输入了好几次都没有成功,为什么可以反复的输入呢?

比如游戏某一关很难,你过不去,你要循环的玩一遍又一遍。

这些都是我们平时遇到的循环场景,其实大家想想还有很多。

在Python中我们用什么实现的呢?

本次我们先讲while循环的使用。

while 语法

代码块
JavaScript
自动换行
复制代码
while 判断条件:
    代码块
复制成功

我们发现,while循环的语法结构和if语句的结构很相像,那么这两个之间有什么区别呢?

代码块
Python
自动换行
复制代码
if 判断条件:
    代码块
复制成功

区别在于,if语句只会执行一次判断条件,条件成立以后,只会执行一次代码块;而while语句,会先执行一次判断条件,如果条件成立,会执行一次代码块,代码块执行完成以后,会再次判断条件语句,如果还成立,将会再执行代码语句... 直到最后条件不成立。

比如使用上面的结构,输出十遍

代码块
Python
自动换行
复制代码
i = 1
while i <= 10:
    print('hello world')
    i += 1 # 一定要记得让 i += 1, 否则会造成死循环
复制成功

但是在写上面的代码块的时候,我们有几点需要注意:

再比如打印1-10的累加和

代码块
Python
自动换行
复制代码
i = 1  # 初始化变量i
total =0 # 用于求和
while i <= 10:  # 条件在1-10以内
    total += i # 累加求和
    i += 1 # 一定要记得让 i += 1, 否则会造成死循环
复制成功

再比如:用户登陆有三次机会

代码块
Python
自动换行
复制代码
i=3
while i>=1:
    username = input('请输入用户名: ')
    password = input('请输入密码: ')
    # 用户名是admin且密码是123456则身份验证成功否则身份验证失败
    if username == 'admin' and password == '123456':
        print('身份验证成功!')
        break
    else:
        print('身份验证失败!')
        i -= 1
        print(f'还有剩余{i}次机会')
复制成功

最后给大家留下一个小练习吧!尝试完成,循环打印1-50之间的偶数。

好了!本文章就到此结束了,有任何疑问请留言哦!下次我们完成for循环和综合案例哦!