python基础2:判断语句和循环语句

第二章 判断语句和循环语句

本章目录

        2.1. if-else
        2.2. elif
        2.3. if嵌套
        2.4. if应用:猜拳游戏
        2.5. 循环语句介绍
        2.6. while循环
        2.7. while循环应用
        2.8. while循环的嵌套以及应用
        2.9. for循环
        2.10. breakcontinue
        2.11. 总结
        2.12. 作业


2.1 if-else



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

答:else

<1>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:没有车票的情况

    没有车票,不能上课
    亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~

<2>练一练

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


2.2 elif



想一想:

   if能完成当xxx时做事情

   if-else能完成当xxx时做事情1,否则做事情2

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

答:

    elif

<1> elif的功能

elif的使用格式如下:

   if xxx1:
        事情1
    elif xxx2:
        事情2
    elif xxx3:
        事情3

说明:

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

demo:

    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> 注意点

    可以和else一起使用

       if 性别为男性:
           输出男性的特征
           ...
       elif 性别为女性:
           输出女性的特征
           ...
       else:
           第三种性别的特征
           ...

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

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


2.3 if 嵌套



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

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

想一想:

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

答:

    if嵌套

<1>if嵌套的格式

    if 条件1:

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

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

    说明
        外层的if判断,也可以是if-else
        内层的if判断,也可以是if-else
        根据实际开发的情况,进行选择

<2>if嵌套的应用

demo:

    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

    没有车票,不能进站
    亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~

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

<3>练一练

情节描述:上公交车,并且可以有座位坐下

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


2.4 if 应用:猜拳游戏



参考代码:

    import random

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

    player = int(player)

    computer = random.randint(0,2)

    # 用来进行测试
    #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('输了,不要走,洗洗手接着来,决战到天亮')


2.5 循环介绍



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

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

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

使用循环语句一句话搞定

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

小总结

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


2.6 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


2.7 while循环应用



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

参考代码如下:

#encoding=utf-8

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

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

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

参考代码如下:

#encoding=utf-8

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

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


2.8 while嵌套循环及应用



while循环嵌套

前面学习过if的嵌套了,想一想if嵌套是什么样子的?

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

<1>while嵌套的格式

    while 条件1:

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

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

<2>while嵌套应用一

要求:打印如下图形:

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

参考代码:

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

<3>while嵌套应用二:九九乘法表

参考代码:

    i = 1
    while i<=9:
        j=1
        while j<=i:
            print("%d*%d=%-2d "%(j,i,i*j),end='')
            j+=1
        print('\n')
        i+=1


2.9 for循环



for循环

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

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

for循环的格式

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

demo1

    name = 'dongGe'
    for x in name:
        print(x)

运行结果如下:  d  o  n  g   G  e

demo2

    name = ''
    for x in name:
        print(x)
    else:
        print("没有数据")

运行结果如下: '没有数据'


2.10 break和continue



1. break

<1> for循环

普通的循环示例如下:


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

   运行结果:   d  o  n  g   G  e

带有break的循环示例如下:

      name = 'dongGe'
      for x in name:
          print('----')
          if x == 'g': 
              break
          print(x)

   运行结果:   d  o  n  

<2> while循环

普通的循环示例如下:

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

    运行结果: 1,2,3,4,5,6,7,8,9,10

带有break的循环示例如下:

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

   运行结果: 1,2,3,4

小总结:

    break的作用:用来结束整个循环

2. continue

<1> for循环

带有continue的循环示例如下:

      name = 'dongGe'
      for x in name:
          print('----')
          if x == 'g': 
              continue
          print(x)

   运行结果: d,o,n,G,e

<2> while循环

带有continue的循环示例如下:

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

   运行结果: 1,2,3,4,    6,7,8,9,10

小总结:

        continue的作用:用来结束本次循环,紧接着执行下一次的循环

* 注意点*

    break/continue只能用在循环中,除此以外不能单独使用

    break/continue在嵌套循环中,只对最近的一层循环起作用


2.11 总结



if往往用来对条件是否满足进行判断

if有4中基本的使用方法:


基本方法

            if 条件:
                满足时做的事情

满足与否执行不同的事情

            if 条件:
                满足时做的事情
            else:
                不满足时做的事情

多个条件的判断

            if 条件:
                满足时做的事情
            elif 条件2:
                满足条件2时做的事情
            elif 条件3:
                满足条件3时做的事情
            else:
                条件都不满足时做的事情

嵌套

            if 条件:
                满足时做的事情
                这里还可以放入其他任何形式的if判断语句

while循环一般通过数值是否满足来确定循环的条件

          i = 0
          while i<10:
              print("hello")
              i+=1

for循环一般是对能保存多个数据的变量,进行便利

          name = 'dongGe'

          for x in name:
              print(x)

if、while、for等其他语句可以随意组合,这样往往就完成了复杂的功能



2.12 作业



必做题:

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

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

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

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

选做题:
1. 根据以下信息提示,请帮小明计算,他每月乘坐地铁支出的总费用
提示信息:

北京公交地铁新票价确定

据北京市发改委网站消息称,北京市将从20151228起实施公共交通新票价:地铁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元;编写程序,帮小明完成每月乘坐地铁需要的总费用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值