while循环:当条件真时,执行循环体
while 条件:
循环体
for循环:
for 目标 in 表达式:
循环体
举例:
>>> fruits = ['apple','橘子','banana','哈密瓜','pear'] #水果列表frutis
>>> for fruit in fruits:
print(fruit,len(fruit)) #打印水果和水果名字的字符数量
apple 5
橘子 2
banana 6
哈密瓜 3
pear 4
range()函数,python的内置函数,取一定范围值
语法: range([start,] stop[,step=1])
-共三个参数,中括号里面是可选参数
-step=1表示第三个参数的值默认值是1,步进值
-作用是生成一个从start参数的值到stop参数的值减1结束的数字序列
举例:
>>> for i in range(4):
print(i)
0
1
2
3
不设置start值,默认从0开始打印
>>> for i in range(2,6):
print(i)
2
3
4
5
>>> for i in range(2,10,3):
print(i)
2
5
8
设置步进值为3
break和continue
break:终止循环,跳出循环体
举例:
birth = '1203'
answer = input('请输入我的生日:')
while True:
if answer == birth:
break
answer = input('不对,请再猜一下我的生日:')
print('厉害了!我的生日你都能猜到!')
continue:终止本轮循环,并开始下一轮循环
举例:
for i in range(10):
if i%2 != 0:
print(i)
continue
print('aloha',i)
--------------------------分割线,哈哈哈--------------------
二、课后作业:
0. 下面的循环会打印多少次"I Love FishC"?
for i in range(0,10,2):
print('i love fishc')
5次,i从0开始,以每次加2,当i为0,2,4,6,8的时候打印“”中语句
1.下面的循环会打印多少次"I Love FishC"?
for i in 5:
print('i love fishc')
会报错, in 是“成员资格运算符”,i要在一个序列中寻找值,而不是单个值
2. 回顾一下 break 和 continue 在循环中起到的作用?
break:终止当前循环,跳出循环体
continue:终止本轮循环并开始下一轮循环(这里要注意的是:在开始下一轮循环之前,会先测试循环条件)。
3.请谈下你对列表的理解?
列表是python中常用的数据类型,以[]方括号括起来,并用,逗号隔开
列表中的数据不需要具有相同的类型
4.请问 range(10) 生成哪些数?
0,1,2,3,4,5,6,7,8,9 相当于range(0,10)
5.目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
print(3)
会打印
2
3
6.什么情况下我们要使循环永远为真?
#########抄的不知道########### 用于游戏实现,因为游戏只要运行着,就需要时刻接收用户输入,因此使用永远为真确保游戏“在线”。操作系统也是同样的道理,时刻待命,操作系统永远为真的这个循环叫做消息循环。另外,许多通讯服务器的客户端/服务器系统也是通过这样的原理来工作的。所以永远为“真”虽然是“死循环”,但不一定是坏事,再说了,我们可以随时用 break 来跳出循环!
7.【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?
i = 0
string = 'I love python.'
while i < len(string)):
print(i)
i+= 1
上面的代码,效率低下的原因是“每次循环都要调用len()函数”,改为一次性直接调用如下:
i = 0
string = 'I love python'
length = len(string)
while i < length:
print(i)
i += 1
----------------------分割线,哈哈哈-----------------
三、动动手:
0.设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内
print('-------密码验证程序-----------')
count = 3
password = '11111'
while count:
passwd = input('请输入密码:')
if passwd == password:
print('密码正确,进入程序...')
break
elif '*' in passwd:
print('*不能作为密码',end=' ')
continue
else:
print('密码错误,你还有',+ count-1,'次机会.',end=' ')
count -= 1
1.编写一个程序,求 100~999 之间的所有水仙花数。如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
for i in range(100,1000):
if i == ((i//100)**3 + (i%100//10)**3 + (i%10)**3):
print(i)
2.三色球问题:
有红、黄、蓝三种颜色的球,其中红球3个,黄球3个,绿球6个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
print('--------三色球问题--------')
for red in range(4):
for yellow in range(4):
for blue in range(7):
if red + yellow + blue == 8:
print('三色球组合:红球',red,'个','黄球',yellow,'个','篮球',blue,'个')