2.3 循环 (一)
循环分两类:
for循环 —— 遍历循环
while循环 —— 条件循环
for 循环
In [37]:
costs = [3,4,12,23,43,100]
for cost in costs: # 翻译:以成本为代价
print('消费{}元'.format(cost))
消费3元
消费4元
消费12元
消费23元
消费43元
消费100元
In [61]:
costs = [3,4,12,23,43,100]
for cost in costs:
#for依次从第一个数3开始打印
print('消费{}元'.format(str(cost).center(15)))
#cost是数字串类型,先用str转换成字符串类型 ,用center比较好看,15是间距的大小
消费 3 元
消费 4 元
消费 12 元
消费 23 元
消费 43 元
消费 100 元
while循环
#生成随机数用randint函数
In [39]:
import random
random.randint(1,10)
#会返回 1 到 10 随机的数,每次运行都是不一样的
Out[39]:
1
Crtl + Enter 执行完还在这个框里; Shift + Enter 执行完一次,就到了下一个框里
题:生成一个长度为20的随机列表 (使用while循环)
In [62]:
import random
random_numbers = [ ] # random_numbers 翻译:随机数字
while len(random_numbers) < 20:
random_numbers = [ ]
for i in range(20)
File "<ipython-input-62-ccfddf8b98be>", line 6
for i in range(20).
^
SyntaxError: invalid syntax
小结:只要能使用for循环,就不要使用while循环
2.4 循环 (二)
题:生成一个长度为20的随机列表 (使用for循环)
#range函数:
In [63]: range(20)
Out[63]: range(0, 20)
#转换成列表,从0开始的列表
In [64]: list(range(20))
Out[64]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
#不转换成列表:
In [65]: random_numbers = []
for i in range(20): # 翻译: 对于范围内的数优化
print(i) #print要和上面的for要是措开的
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
In [67]:
random_numbers = []
for i in range(20):
random_numbers.append(random.randint(1,10)) # randint 翻译:随机
print(random_numbers,len(random_numbers))
[4, 2, 2, 1, 3, 3, 1, 10, 10, 3, 6, 4, 4, 4, 3, 6, 1, 6, 10, 10] 20
必须用while循环:当循环的条件和数量没有关系时
用while做 题:向空列表中添加随机数,直到添加的数为9,则终止
In [42]:
random_numbers = [] #先把random_numbers 清空
while 9 not in random_numbers:
random_numbers.append(random.randint(1,10))
print(random_numbers,len(random_numbers))
#每一次运行结果都不一样,和数量是没有关系的,所以用while循环 。可以在此加括号:while (9 not in random_numbers):
[10, 1, 3, 5, 2, 10, 4, 3, 7, 7, 9] 11
#判断1是否在列表中:
In [43]: 1 in [1,2,3]
Out[43]: True
#不在列表中:
In [44]: 1 not in [1,2,3]
Out[44]: False
2.5 答疑
只有一个元素的列表
题: a = [1,2,3], b = 1 ,c = (b in a),c是什么类型?它是不是元组? 答:不是
#查看类型
In [45]:
a = []
b = ()
type(a),type(b)
Out[45]:
(list, tuple)
#分别向列表和元组中添加一个元素 1 。
In [46]:
a = [1]
b = (1)
type(a),type(b),b
Out[46]:
(list, int, 1) #b的类型变了
#包含一个元素的元组
In [47]:
a = [1]
b = (1,)
type(a),type(b),b #b就变成了tuple类型
Out[47]:
(list, tuple, (1,))
In [48]:
a = [1]
b = (1,)
type(a),type(b),b,len(b) #b的长度
Out[48]:
(list, tuple, (1,), 1)