学习札记-Python系列-4-循环

目标

  • 了解循环
  • while语法【重点】
  • while应用
  • break和continue
  • while循环嵌套【重点】
  • while循环嵌套应用【难点】
  • for循环

循环语句介绍

生活中的循环场景

思考:假如我有个女朋友,有一天我们闹矛盾生气了,女朋友说:道歉,说一万遍“媳妇儿,我错了”。这个时候程序员会怎么做?

答: 一万遍print("媳妇儿,我错了")

思考:复制粘贴一万次吗?

答:重复执行一万次一样的代码,程序中循环即可

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

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

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

使用循环语句一句话搞定

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

循环的作用:让代码更高效的重复执行。

循环的分类

在Python中,循环分为whilefor两种,最终实现效果相同。

小总结

  • while和if的用法基本类似,区别在于:if 条件成立,则执行一次; while 条件成立,则重复执行,直到条件不成立为止。

  • 一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成

  • 循环不是必须要使用的,但是为了提高代码的重复使用率,所以开发者都会采用循环

while循环

  1. while循环的格式
    while 条件:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
  1. 练习题:循环打印5次
    i = 0
    while i < 5:
        print("当前是第%d次执行循环" % (i + 1))
        print("i=%d" % i)
        i+=1
  1. 结果:
    当前是第1次执行循环
    i=0
    当前是第2次执行循环
    i=1
    当前是第3次执行循环
    i=2
    当前是第4次执行循环
    i=3
    当前是第5次执行循环
    i=4
  1. 死循环
    由于程序员的原因,忘记 在循环内部 修改循环的判断条件,导致循环持续执⾏,程序⽆法终⽌!

while循环应用

  1. 计算1~100的累积和(包含1和100)
    分析:1-100的累加和,即1 + 2 + 3 + 4 +….,即前两个数字的相加结果 + 下一个数字( 前一个数字 + 1)。

参考代码如下:

#encoding=utf-8

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

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

注意:为了验证程序的准确性,可以先改小数值,验证结果正确后,再改成1-100做累加。

  1. 计算1~100之间偶数的累积和(包含1和100)
    分析:1-100的偶数和,即 2 + 4 + 6 + 8....,得到偶数的方法如下:

偶数即是和2取余结果为0的数字,可以加入条件语句判断是否为偶数,为偶数则累加
初始值为0 / 2 , 计数器每次累加2
参考代码如下:

方法一:条件判断和2取余数则累加

#encoding=utf-8

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

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

方法二:计数器控制

i = 0
result = 0
while i <= 100:
    result += i
    i += 2

# 输出2550
print(result)

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 <= 5:
        print("*", end=" ")
        j += 1
    print()

    i += 1

3.练习题:打印三角形

要求:打印如下图形:

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

参考代码:

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

    i += 1

4. 九九乘法表

image.png

参考代码:

# 重复打印9行表达式
j = 1
while j <= 9:
    # 打印一行里面的表达式 a * b = a*b
    i = 1
    while i <= j:
        print(f'{i}*{j}={j*i}', end='\t')
        i += 1
    print()
    j += 1

5. 练习题: 猜拳游戏(while版)

使用while循环语句实现猜拳游戏.

for循环

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

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

for循环的格式

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

name = 'it'

for x in name:
    print(x)
运行结果如下:
i
t

demo2

name = 'hello'
for x in name:
    print(x)
    if x == 'l':
        print("Hello world!")
运行结果如下:

h
e
l
Hello world!
l
Hello world!
o

demo3

# range(5) 会牵扯到迭代器的知识,
# 作为刚开始学习python的我们,此阶段仅仅知道range(5)表示可以循环5次即可
for i in range(5):
    print(i)

'''
效果等同于 while 循环的:
'''
i = 0
while i < 5:
    print(i)
    i += 1
'''
运行结果如下:
0
1
2
3
4
'''

break和continue

break

for循环

普通的循环示例如下:

name = 'it'
for x in name:
    print('----')
    print(x)
else:
    print("==for循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
i
----
t
==for循环过程中,如果没有break则执行==

带有break的循环示例如下:

name = 'it'
for x in name:
    print('----')
    if x == 't': 
        break
    print(x)
else:
    print("==for循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
i

while循环

普通的循环示例如下:

i = 0
while i<5:
    i = i+1
    print('----')
    print(i)
else:
    print("==while循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
1
----
2
----
3
----
4
----
5
==while循环过程中,如果没有break则执行==

带有break的循环示例如下:

i = 0
while i<5:
    i = i+1
    print('----')
    if i==3:
        break
    print(i)
else:
    print("==while循环过程中,如果没有执行break退出,则执行本语句==")

运行结果:

----
1
----
2
----

小结:

break的作用:立刻结束break所在的循环

continue

for循环

带有continue的循环示例如下:

name = 'ith'
for x in name:
    print('----')
    if x == 't': 
        continue
    print(x)
else:
    print("==while循环过程中,如果没有break则执行==")

运行结果:

----
i
----
----
h
----
==while循环过程中,如果没有break则执行==

while循环

带有continue的循环示例如下:

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

运行结果:

----
1
----
2
----
----
4
----
5

小结:

continue的作用:用来结束本次循环,紧接着执行下一次的循环
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码。
所谓else指的是循环正常结束之后要执行的代码,即如果是break终止循环的情况,else下方缩进的代码将不执行。
因为continue是退出当前一次循环,继续下一次循环,所以该循环在continue控制下是可以正常结束的,当循环结束后,则执行了else缩进的代码。

注意点

break/continue

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

else

while和for都可以配合else使用
else下方缩进的代码含义:当循环正常结束后执行的代码
break终止循环不会执行else下方缩进的代码
continue退出循环的方式执行else下方缩进的代码

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

推荐阅读更多精彩内容