前言

本节继续介绍分支和循环

知识点

while循环

Python while循环与if条件分支有点类似,在条件为真的情况下,执行某一段指定的代码。不同的是只要条件为True,while循环就会一直重复执行那一段代码,我们把这段代码称之为循环体。直到条件为False时,才会停止。

当我们在这个循环体设置一些语句,以修改条件,那么我们这个while循环运行到指定位置时,就会退出。

语法:

while 条件:
循环体

例如:

我们条件设置为 i<10, 循环体设置为i += 1,那么每执行一次循环体,条件i就会加1,直到i=10时,条件为假,才会退出循环。

for循环

虽然说Python是由C语言编写而来的,但是它的for循环跟C语言的for循环不太一样,Python的for循环显得更为智能和强大!

主要是体现在Python的for循环可以自动的调用迭代器,自动捕获一些异常,并结束循环

语法

for 目标 in 表达式:
循环体 目标:每一次迭代的变量
表达式:一个列表或者元祖

实验:

>>> for i in a:
print(i,end=' ') F i s h C >>> for each in member:
print(each,len(each)) 小甲鱼 3
黑夜 2
小布丁 3
迷途 2
怡静 2

range()

for循环的小伙伴

语法range([start],stop[,step=1])

这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的

step=1:第三个参数的值默认为1,表示每次递增为1

range这个BIF的作用是生成一个从start参数的值开始到stop参数值结束的数字序列

实验:

>>> range(5)
range(0, 5) >>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
print(i) 0
1
2
3
4
>>> for i in range(2,9):
print(i) 2
3
4
5
6
7
8
>>> for i in range(1,10,2):
print(i) 1
3
5
7
9

两个关键的语句break,continue

break作用终止当前循环,跳出循环体

例子:

bingo = '小甲鱼是帅哥'
answer = input('请输入小甲鱼最想听的一句话:') while True:
if answer == bingo:
break
answer = input('抱歉,错了,请重新输入(答案正确才能退出游戏):') print('哎哟,帅哦~')
print('您真是小甲鱼肚子里的蛔虫啊^_^') 运行结果: 请输入小甲鱼最想听的一句话:sha
抱歉,错了,请重新输入(答案正确才能退出游戏):bi
抱歉,错了,请重新输入(答案正确才能退出游戏):nidaye
抱歉,错了,请重新输入(答案正确才能退出游戏):小甲鱼是帅哥
哎哟,帅哦~
您真是小甲鱼肚子里的蛔虫啊^_^

continue作用终止本轮循环并开始下一轮循环,在开始下一轮循环之前,会先测试循环条件,只有循环条件为True时,它才会开始下一轮循环。否则,退出循环。

例子:

for i in range(10):
if i%2 != 0:
print(i)
continue
i += 2
print(i) 运行结果:
2
1
4
3
6
5
8
7
10
9

分析:

range(10) = [0,1,2,3,4,5,6,7,8,9]

当i为0时,if条件为假,直接运行i += 2,打印2

当i为1时,if条件为真,打印1,终止本轮循环,开始下一轮循环

当i为2时,if条件为假,直接运行i += 2,打印 4

当i为3时,if条件为真,打印3,终止本轮循环,开始下一轮循环

当i为4时,if条件为假,直接运行i += 2,打印6

当i为5时,if条件为真,打印5,终止本轮循环,开始下一轮循环

当i为6时,if条件为假,直接运行i += 2,打印8

当i为7时,if条件为真,打印7,终止本轮循环,开始下一轮循环

当i为8时,if条件为假,直接运行i += 2,打印 10

当i为9时,if条件为真,打印9,终止本轮循环,开始下一轮循环

课后习题

  • 目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
print(3) 运行结果:
2,3
  • 以下程序有没有办法大幅提升效率(仍然使用while):
i = 0
string = 'ILoveFishC.com'
while i < len(string):
print(i)
i += 1
-------
while True:
for i in range( len('ILoveFishC.com')):
print(i)
break
--------
i = 0
string = 'ILoveFishC.com'
length = len(string)
while i < length:
print(i)
i += 1
---------
这段代码之所以效率低,是因为每次循环都需要调用len()函数。
  • 设计一个验证密码程序,用户只有三次机会输入错误,如果用户输入的内容中包含*则不计算在内。
password = 'fishC'
count = 3
while count:
passwd = input('请输入密码:')
if passwd == password:
print('密码正确,进入程序...')
break
elif '*' in passwd:
print('密码中不能含有"*"号!您还有',count,'次机会~',end=' ')
continue
else:
print('密码输入错误!您还有',count-1,'次机会~',end=' ')
count -= 1 运行结果: 请输入密码:*
密码中不能含有"*"号!您还有 3 次机会~ 请输入密码:*
密码中不能含有"*"号!您还有 3 次机会~ 请输入密码:*
密码中不能含有"*"号!您还有 3 次机会~ 请输入密码:k
密码输入错误!您还有 2 次机会~ 请输入密码:k
密码输入错误!您还有 1 次机会~ 请输入密码:*
密码中不能含有"*"号!您还有 1 次机会~ 请输入密码:*
密码中不能含有"*"号!您还有 1 次机会~ 请输入密码:*
密码中不能含有"*"号!您还有 1 次机会~ 请输入密码:fishC
密码正确,进入程序...
  • 编写一个程序,求100~999之间的所有水仙花数。

如果一个3位数等于各位数字的立方和,则称这个数为水仙花数,例如:153 = 1^3 + 5^3 + 3^3

for x in range(0,10):
for y in range(0,10):
for z in range(0,10):
sum = x*100 + y*10 +z
if x**3 + y**3 + z **3 == sum and sum>=100 and sum<1000:
print(sum) ---------
for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10 # 注意这里要使用地板除哦~
if sum == i:
print(i) 运行结果:
================== RESTART: C:/Users/ThinkPad/Desktop/1.py ==================
153
370
371
407

解释:

零基础入门学习Python(9)--了不起的分支和循环3的更多相关文章

  1. 【Python教程】《零基础入门学习Python》(小甲鱼)

    [Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609

  2. 《零基础入门学习Python》【第一版】视频课后答案第001讲

    测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...

  3. 零基础入门学习Python(1)--我和Python的第一次亲密接触

    前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...

  4. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  5. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  6. 零基础入门学习Python(7)--了不起的分支和循环1

    前言 我们今天的主题,是了不起的分支和循环,为什么不说c语言,Python了不起,而对分支和循环这两个知识点那么崇拜呢? 我们之前的几节课里也接触到了分支和循环,大家思考一下,如果我们的程序没有分支和 ...

  7. 零基础入门学习Python(36)--类和对象:给大家介绍对象

    知识点 Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前 ...

  8. 零基础入门学习Python(17)--函数:Python的乐高积木

    前言 相信大家小时候都玩过神奇的乐高积木, 只要通过想象力和创造力我们可以拼凑很多神奇的东西,那么随着我们学习的深入,我们编写的Python代码也将日益增加,并且也越来越复杂, 所以呢,我们需要找寻一 ...

  9. 零基础入门学习Python(8)--了不起的分支和循环2

    前言 上节课小甲鱼教大家如何正确的打飞机,其要点是判断和循环,判断就是该不该做某事,循环就是持续做某事 知识点 写一个程序 按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下 ...

随机推荐

  1. 算法复习周------“动态规划之‘最长公共子序列’”&&《计蒜课》---最长公共子串题解

    问题描述: 这个问题其实很容易理解.就是给你两个序列X={x1,x2,x3......xm} Y={y1,y2,y3......ym},要求找出X和Y的一个最长的公共子序列. 例:Xi={A, B, ...

  2. NOIp 2014 寻找道路【图的遍历/最短路】By cellur925

    题目传送门 比较裸的图论,结果自己还是没做出来,我真菜. 我们根据题意,只要把不能通向终点的点求出,然后再分别以这些点为起点,求出它们能到达的点,这些点也不能在路径上. 之后跑一个最短路即可. 注意以 ...

  3. bnu oj 13288 Bi-shoe and Phi-shoe

    题目链接: http://www.bnuoj.com/contest/problem_show.php?pid=13288 题目大意: 给出一个n,然后给出n个幸运数([1,m]中不能被m整除的数的数 ...

  4. 构造 HDOJ 5400 Arithmetic Sequence

    题目传送门 题意:问有多少个区间,其中存在j使得ai + d1 == ai+1(i<j) && ai + d2 == ai+1 (i>j) 构造:用c1[i], c2[i] ...

  5. Linux单机环境下HDFS伪分布式集群安装操作步骤v1.0

    公司平台的分布式文件系统基于Hadoop HDFS技术构建,为开发人员学习及后续项目中Hadoop HDFS相关操作提供技术参考特编写此文档.本文档描述了Linux单机环境下Hadoop HDFS伪分 ...

  6. Service官方教程(2)*IntentService与Service示例、onStartCommand()3个返回值的含义。

    1.Creating a Started Service A started service is one that another component starts by calling start ...

  7. TCP模型,控制标志,握手,挥手,长连接*

    1. TCP协议 Transmission Control Protocol,传输控制协议 面向连接的协议 需要三次握手建立连接 需要四次挥手断开连接 TCP报头最小长度:20字节 2.模型图 3.T ...

  8. 【LeetCode】297. Serialize and Deserialize Binary Tree

    二叉树的序列化与反序列化. 如果使用string作为媒介来存储,传递序列化结果的话,会给反序列话带来很多不方便. 这里学会了使用 sstream 中的 输入流'istringstream' 和 输出流 ...

  9. D. Winter Is Coming 贪心(好题)

    http://codeforces.com/contest/747/problem/D 大概的思路就是找到所有两个负数夹着的线段,优先覆盖最小的长度.使得那时候不用换鞋,是最优的. 但是这里有个坑点, ...

  10. iOS捷径(Workflow 2.0)拓展

    前言 iOS12 捷径(Workflow 2.0)入门 iOS12 捷径(Workflow 2.0)进阶 iOS12捷径(Workflow 2.0)实例大全 注:本文主要介绍如何获取URL Schem ...