分支和循环
while循环:条件为真时,执行循环体
while 条件:
循环体
for循环(计数器循环)
语法:
for 目标 in 表达式:
循环体
- range():
range(第一个数,结束数字后的数字,间隔的值)
list函数:
ist() 方法用于将元组转换为列表。
aTuple = (123, 'xyz', 'zara', 'abc');
aList = list(aTuple)
print "列表元素 : ", aList
元组和列表:
Python 的元组与列表类似,不同之处在于:
0.元组的元素不能修改(删除,添加),但是可以连接。
1.元组使用小括号,列表使用方括号。
2.元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
break 和 continue:
break:跳出循环
continue:终止本轮循环,开始下一轮循环
- 下面的循环会打印多少次"I Love FishC"?
1. for i in 5:
2. print('I Love FishC')
5
2.回顾一下 break 和 continue 在循环中起到的作用?
break:跳出循环
continue:终止本轮循环,开始下一轮循环
3.请谈下你对列表的理解?
列表类似于一维的矩阵,将多个元素存在于一个空间,可以进行更改,增加,删除等操作。
-
请问 range(10) 生成哪些数?
0 1 2 3 4 5 6 7 8 9 -
目测以下程序会打印什么?
1. while True:
2. while True:
3. break
4. print(1)
5. print(2)
6. break
7. print(3)
23
-
什么情况下我们要使循环永远为真?
-
【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?
1. i = 0
2. string = 'ILoveFishC.com'
3. while i < len(string)):
4. print(i)
5. i += 1
for i in range(len(string)):
print(i)
8.设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
password = '981202'
i=2
while not i+1 == 0:
teep = input('pls enter your code:')
if '*' in teep:
print('code can not invoved *,pls enter again')
continue
if teep == password:
print('enter rightly')
break
else:
print('wrong code,enter again')
print('you still have %d chances'%(i))
i-=1
continue
if i+1 == 0:
print("I'm so sry about you waste you all chance")
else:
print('ready to get into system')
9.编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
i = 100
while not i == 1000:
if (i//100)**3+((i-(i//100)*100)//10)**3+(i%10)**3 == i:
print(i)
i+=1
else:
i+=1
算法改进:
1. for i in range(100, 1000):
2. sum = 0
3. temp = i
4. %反复地板除10,再与10取余数,获得个十百位数。
5. while temp:
6. sum = sum + (temp%10) ** 3
7. temp //= 10 # 注意这里要使用地板除哦~
8. if sum == i:
9. print(i)
10.三色球问题
有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
1. print('red\tyellow\tblue')
2. for red in range(0, 4):
3. for yellow in range(0, 4):
4. for green in range(2, 7):
5. if red + yellow + green == 8:
6. # 注意,下边不是字符串拼接,因此不用“+”哦~
7. print(red, '\t', yellow, '\t', green)
注释:range(2, 7)是产生[2, 3, 4, 5, 6]5个数,绿球不能是1个,因为如果绿球是1个的话,红球 + 黄球需要有7个才能符合题意,而红球和黄球每种只有3个,因此是range(2, 7)