基础班-第04天{if、while、for}

判断语句和循环语句

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("亲爱的,那就下次⻅了,⼀票难求啊~~~~(>_<)~~~~")

结果:有车票的情况

有⻋票,可以上⽕⻋
终于可以⻅到Ta了,美滋滋~~~

结果2:没有⻋票的情况

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

<2>练⼀练

要求:从键盘输⼊⼑⼦的⻓度,如果⼑⼦⻓度没有超过10cm,则允许上⽕ ⻋,否则不允许上⽕⻋


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

  • 1️⃣可以和else⼀起使⽤

if 性别为男性:
      输出男性的特征
      ...

elif 性别为⼥性:
      输出⼥性的特征

      ...
else:
      第三种性别的特征
      ...

说明:

  • 当 “性别为男性”满⾜时,执⾏“输出男性的特征”的相关代码
  • 当 “性别为男性”不满⾜时,如果“性别为⼥性”满⾜,则执⾏“输出⼥性的特征”的相关代码
  • 当 “性别为男性”不满⾜,“性别为⼥性”也不满⾜,那么久默认执⾏ else后⾯的代码,即 “第三种性别的特征”相关代码
  • 2️⃣elif必须和if⼀起使⽤,否则出错

if嵌套

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

  • 当需要满⾜条件去做事情的这种情况需要使⽤if
  • 当满⾜条件时做事情A,不满⾜条件做事情B的这种情况使⽤if-else
    想⼀想:

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

答:

if嵌套

<1>if嵌套的格式

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

  • 说明
    1️⃣外层的if判断,也可以是if-else
    2️⃣内层的if判断,也可以是if-else
    3️⃣根据实际开发的情况,进⾏选择

<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,就可以坐下

应⽤:猜拳游戏

<1>运⾏效果:

image.png

<2>参考代码:

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 ==
    print('获胜,哈哈,你太厉害了')
elif player == computer:
    print('平局,要不再来⼀局')
else:
    print('输了,不要⾛,洗洗⼿接着来,决战到天亮')

循环介绍

<1>⽣活中的循环场景

跑道


image.png

⻛扇


image.png

CF加特林
image.png

<2>软件开发中循环的使⽤场景

跟媳妇承认错误,说⼀万遍"媳妇⼉,我错了"

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

使⽤循环语句⼀句话搞定

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

<3>⼩总结

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

while循环

<1>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)

参考代码如下:

#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)

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嵌套应⽤⼆:九九乘法表

image.png

参考代码:

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

for循环

像while循环⼀样,for可以完成循环的功能。
在Python中 for循环可以遍历任何序列的项⽬,如⼀个列表或者⼀个字符串
等。

for循环的格式

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

demo1

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

运⾏结果如下:


image.png

demo2

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

运⾏结果如下:


image.png

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的作⽤:⽤来结束本次循环,紧接着执⾏下⼀次的循环

3. 注意点

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

总结

  • if往往⽤来对条件是否满⾜进⾏判断
  • if有4中基本的使⽤⽅法:

1️⃣基本方法

if 条件:
      满⾜时做的事情

2️⃣满⾜与否执⾏不同的事情

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

3️⃣多个条件的判断

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

4️⃣嵌套

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

  • while循环⼀般通过数值是否满⾜来确定循环的条件
i = 0
while i<10:
    print("hello")
    i+=1
  • for循环⼀般是对能保存多个数据的变量,进⾏遍历
name = 'dongGe'
for x in name:
    print(x)
  • if、while、for等其他语句可以随意组合,这样往往就完成了复杂的功能

作业

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

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

if username == 'root' and password == '123456':
    print("欢迎进⼊xxx的世界")
else:
    print("用户名或密码错误")

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

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

m = 1
while m < 5:
    n = 1
    while n < 5:
        if n >= m:
            print("* ", end='')
        n += 1
    print("\n")
    m += 1

倒三角形的打印可以用for循环

for i in range(1, 5):
      for j in range(1, 5):
          if j>=i:
              print("* ", end='')

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

推荐阅读更多精彩内容