前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python判断与循环详解

Python判断与循环详解

作者头像
DataScience
发布2020-01-01 21:51:44
9790
发布2020-01-01 21:51:44
举报
文章被收录于专栏:A2DataA2Data

本文标识 : Python_2

本文编辑 : Jack 风

编程工具 : Anaconda、Pycharm

阅读时长 : 15分钟

1、if-else

  • 掌握 if-else 的语法格式

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

1.1、使用格式

代码语言:javascript
复制
if 条件:
    满足条件时要做的事情1
    满足条件时要做的事情2
    满足条件时要做的事情3
    ...(省略)...
else:
    不满足条件时要做的事情1
    不满足条件时要做的事情2
    不满足条件时要做的事情3
    ...(省略)...

demo

马上要过年了,又到了抢票的季节。

代码语言:javascript
复制
    chePiao = 1 # 用1代表有车票,0代表没有车票
    if chePiao == 1:
        print("有车票,可以上火车")
        print("终于可以坐着回家了,美滋滋~~~")
    else:
        print("没有车票,不能上车")
        print("可否上车补票啊,真是一票难求啊~~~~(>_<)~~~~")

1.2、练一练

要求:从键盘输入刀子的长度,如果刀子长度没有超过10cm,则允许上火车,否则不允许上火车

2、elif

  • 想一想: if能完成当xxx时做事情 if-else能完成当xxx时做事情1,否则做事情2 如果有这样一种情况: 当xxx1时做事情1, 当xxx2时做事情2, 当xxx3时做事情3, 那该怎么实现呢?
  • 答: elif

2.1、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结束

demo

代码语言:javascript
复制
    score = 77

    if score>=90 and score<=100:
        print('本次考试,等级为A')
    elif score>=80 and score<90:
        print('本次考试,等级为B')
    elif score>=70 and score<80:
        print('本次考试,等级为C')
    elif score>=60 and score<70:
        print('本次考试,等级为D')
    elif score>=0 and score<60:
        print('本次考试,等级为E')

2.2、注意点

  • 可以和else一起使用 if 性别为男性: 输出男性的特征 ... elif 性别为女性: 输出女性的特征 ... else: 第三种性别的特征 ... 说明:
    • 当 “性别为男性” 满足时,执行 “输出男性的特征”的相关代码
    • 当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的特征”的相关代码
    • 当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的特征”相关代码
  • elif必须和if一起使用,否则出错

3、if嵌套

想一想:

坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?

答:

if嵌套

3.1、嵌套格式

代码语言:javascript
复制
  if 条件1:

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

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

3.2、嵌套应用

demo

代码语言:javascript
复制
    chePiao = 1     # 用1代表有车票,0代表没有车票
    daoLenght = 9     # 刀子的长度,单位为cm

    if chePiao == 1:
        print("有车票,可以进站")
        if daoLenght < 10:
            print("通过安检")
            print("终于可以坐着回家了,美滋滋~~~")
        else:
            print("没有通过安检")
            print("刀子的长度超过规定,等待警察处理...")
    else:
        print("没有车票,不能进站")
        print("不要方,真是一票难求啊~~~~(>_<)~~~~")

结果1:chePiao = 1;daoLenght = 9

代码语言:javascript
复制
    有车票,可以进站
    通过安检
    终于可以回家了,美滋滋~~~

结果2:chePiao = 1;daoLenght = 20

代码语言:javascript
复制
    有车票,可以进站
    没有通过安检
    刀子的长度超过规定,等待警察处理...

结果3:chePiao = 0;daoLenght = 9

代码语言:javascript
复制
    没有车票,不能进站
    一票难求啊~~~~(>_<)~~~~

结果4:chePiao = 0;daoLenght = 20

代码语言:javascript
复制
    没有车票,不能进站
    一票难求啊~~~~(>_<)~~~~

想一想:为什么结果3和结果4相同???

3.3 、练一练

情节描述:上公交车,并且可以有座位坐下 要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果空座位的数量大于0,就可以坐下

4、猜拳游戏

应用,根据if语句相关知识,完善猜拳游戏

优化参考代码

优化以下代码,解决只能玩一次的问题

代码语言:javascript
复制
    import random

    player = input('请输入:剪刀(0)  石头(1)  布(2):')

    player = int(player)

    computer = random.randint(0,2)

    # 用来进行测试
    # 感谢关注A2Data
    #print('player=%d,computer=%d',(player,computer))

    if ((player == 0) and (computer == 2)) or ((player ==1) and (computer == 0)) or ((player == 2) and (computer == 1)):
        print('获胜,哈哈,你太厉害了')
    elif player == computer:
        print('平局,要不再来一局')
    else:
        print('输了,不要走,洗洗手接着来,决战到天亮')

5、循环语句

生活中的循环应用场景: 跑道、风扇、空调左右上下摆风、地铁日常运行等

开发中的循环场景。 某天,你惹你女朋友生气了, 需要跟她诚恳地道歉。

代码语言:javascript
复制
    print("亲爱的,我错了")
    print("亲爱的,我错了")
    print("亲爱的,我错了")
    ...(还有99997遍)...
  • 使用循环语句呢?一句话搞定
代码语言:javascript
复制
    i = 0
    while i<10000:
        print("亲爱的,我错了")
        i+=1  # i+=1 同等于 i= i+1

使用场景:

  • 一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成
  • 循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环

6、while循环

格式

代码语言:javascript
复制
    while 条件:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...

demo

代码语言:javascript
复制
    i = 0
    while i<5:
        print("当前是第%d次执行循环"%(i+1))
        print("i=%d"%i)
        i+=1

结果

代码语言:javascript
复制
    当前是第1次执行循环
    i=0
    当前是第2次执行循环
    i=1
    当前是第3次执行循环
    i=2
    当前是第4次执行循环
    i=3
    当前是第5次执行循环
    i=4

7、while循环应用

7.1、计算1~100累积和

  • 注意:包含 1 和 100
代码语言:javascript
复制
# A2Data提供参考代码

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

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

7.2 、计算1~100偶数累积和

  • 注意:同样包含1 和 100
代码语言:javascript
复制
# 欢迎关注A2Data 转发在看求支持哦
i = 1
sum = 0
while i<=100:
    if i%2 == 0:
        sum = sum + i
    i+=1

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

8、break和continue

8.1、break

8.1.1、for循环

for循环场景下的使用案例。 具体差别,自己动手输出看。

正常for循环

代码语言:javascript
复制
name = 'a2data'

for x in name:
    print('----')
    print(x)

带有break

代码语言:javascript
复制
name = 'a2data'

for x in name:
    print('----')
    if x == 'd':
        break
    print(x)
8.1.2、while循环

普通循环如下

代码语言:javascript
复制
i = 0

while i<10:
    i = i+1
    print('----')
    print(i)

带有‘break’循环

代码语言:javascript
复制
i = 0

while i<10:
    i = i+1
    print('----')
    if i==5:
        break
    print(i)
  • break的作用:用来结束整个循环

8.2、continue

8.2.1、for循环
代码语言:javascript
复制
name = 'a2data'

for x in name:
    print('----')
    if x == 'd':
        continue
    print(x)
8.2.2、while循环
代码语言:javascript
复制
i = 0

while i<10:
    i = i+1
    print('----')
    if i==5:
        continue
    print(i)

总结:

  • continue的作用:用来结束本次循环,紧接着执行下一次的循环
8.2.3、注意点

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

9、while循环嵌套

9.1嵌套格式

代码语言:javascript
复制
    while 条件1:

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

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

9.2、练习打印如下图形

代码语言:javascript
复制
    *
    * *
    * * *
    * * * *
    * * * * *

参考代码

代码语言:javascript
复制
    i = 1
    while i<=5:

        j = 1
        while j<=i:
            print("* ",end='')
            j+=1

        print("\n")
        i+=1

9.3、打印:九九乘法表

10、for循环

  • 掌握 for 循环的语法格式
  • 掌握 for-else 的执行过程

像while循环一样,for可以完成循环的功能。 在Python中 for循环可以遍历任何序列的项目, 如一个列表或者一个字符串等。 请跟着操作如下demo!

demo0

代码语言:javascript
复制
name = 'a2data'

for x in name:
    print(x)

demo1

代码语言:javascript
复制
name = 'hello1' # 皮一下很开心

for x in name:
    print(x)
    if x=='l':
        break #退出for循环
else:
    print("==for循环过程中,如果没有break则执行==")

demo2

代码语言:javascript
复制
name = 'hello'

for x in name:
    print(x)
    #if x=='l':
    #    break #退出for循环
else:
    print("==for循环过程中,如果没有break则执行==")

11、总结与练习

11.1、必做题:

使用if,编写程序,实现以下功能

  • 从键盘获取用户名、密码
  • 如果用户名和密码都正确(预先设定一个用户名和密码),那么就显示“欢迎进入xxx的世界”,否则提示密码或者用户名错误

使用while,完成以下图形的输出

代码语言:javascript
复制
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*

11.2、选做题:

根据以下信息提示,计算出每月乘坐地铁支出的总费用

提示信息(票价):

  • 地铁6公里(含)内3元,公交车10公里(含)内2元,使用市政交通一卡通刷卡乘公交车普通卡5折,学生卡2.5折。

  一、城市公共电汽车价格调整为:10公里(含)内2元,10公里以上部分,每增加1元可乘坐5公里。使用市政交通一卡通刷卡乘坐城市公共电汽车,市域内路段给予普通卡5折,学生卡2.5折优惠;市域外路段维持现行折扣优惠不变。享受公交政策的郊区客运价格,由各区、县政府按照城市公共电汽车价格制定。   二、轨道交通价格调整为:6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里。使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次,价格给予8折优惠;满150元以后的乘次,价格给予5折优惠;支出累计达到400元以后的乘次,不再享受打折优惠。

要求

假设每个月,你都需要上20天班,每次上班需要来回1次,即每天需要乘坐2次同样路线的地铁;每月月初第一次刷公交卡时,扣款5元;编写程序,请计算出你每月乘坐地铁需要的总费用?

欢迎评论做答。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataScience 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、if-else
    • 1.1、使用格式
      • 1.2、练一练
      • 2、elif
        • 2.1、elif的功能
          • 2.2、注意点
          • 3、if嵌套
            • 3.1、嵌套格式
              • 3.2、嵌套应用
                • 3.3 、练一练
                • 4、猜拳游戏
                • 5、循环语句
                • 6、while循环
                • 7、while循环应用
                  • 7.1、计算1~100累积和
                    • 7.2 、计算1~100偶数累积和
                    • 8、break和continue
                      • 8.1、break
                        • 8.1.1、for循环
                        • 8.1.2、while循环
                      • 8.2、continue
                        • 8.2.1、for循环
                        • 8.2.2、while循环
                        • 8.2.3、注意点
                    • 9、while循环嵌套
                      • 9.1嵌套格式
                        • 9.2、练习打印如下图形
                          • 9.3、打印:九九乘法表
                          • 10、for循环
                          • 11、总结与练习
                            • 11.1、必做题:
                              • 11.2、选做题:
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档