视频位置:102:50
for
循环遍历集合中所有的项,一个集合可以是字符串,列表(数组)或范围对象(range)
for a in 'pyth':
print(a)
for b in ['mash','john','jack']:
print(b)
for c in [1,2,3]:
print(c)
输出如下:
p
y
t
h
mash
john
jack
1
2
3
range功能,range(5)会输出0,1,2,3,4,
for a in range(3): #for最后由冒号别忘了
print(a)
for b in range(8,10):
print(b)
for c in range(2,9,2): #步数是2
print(c)
输出如下:
0
1
2
8
9
2
4
6
8
小练习,计算3个商品的价格,
price = [10,20,30]
我的程序如下:
price = [10,20,30]
a = 0
for b in price:
a = a + b
print(a)
视频主的程序类似。
接下来,嵌套循环
for x in range(4):
for y in range(3): #当x=0时,y分别为0,1,2
print(f"({x},{y})")
(0,0)
(0,1)
(0,2)
(1,0)
(1,1)
(1,2)
(2,0)
(2,1)
(2,2)
(3,0)
(3,1)
(3,2)
小挑战,花一个F形
xxxxx
xx
xxxxx
xx
xx
我的程序如下:
for y in [5,2,5,2,2]:
print('x' * y)
视频主说:如果你想作弊,就可以用数字乘字符串,这不是我想让你做的。额,好吧。
numbers = [5,2,5,2,2]
for a in numbers:
output = ''
for b in range(a):
output = output + 'x' #这里用到了字符串拼接的功能
print(output)
接下来,列表list
names = ['John','Mosh','jack','Sarh','Lucky']
# 0 1 2 3 4
print(names)
print(names[0]) #索引0号,index
print(names[-1]) #从后往前,倒着,第一号
print(names[2:])
print(names[2:4]) #不包含4,也就是2,3
输出为:
['John', 'Mosh', 'jack', 'Sarh', 'Lucky']
John
Lucky
['jack', 'Sarh', 'Lucky']
['jack', 'Sarh', 'Lucky']
修改列表
names = ['John','Mosh','jack','Sarh','Lucky']
# 0 1 2 3 4
names[0] = 'JOHN'
print(names)
小练习,找到列表中最大的数。
熟悉的c语言考试的感觉。我的程序如下:
numbers = [15,13,35,38,11,64,23,56,59,23,17,34]
max = 0
for i in numbers:
if max < i:
max = i
print(max)
突然想到以前学的怎么对数组排序来?把数组重新排序。
让我想一想…
numbers = [2,6,3,9,7,4,5]
print(numbers)
temp = 0
a = 1
b = 0
for count in range(len(numbers)-1):
print(f"第{count}大轮")
for i in range(len(numbers)-1):
print(f"第{i}小轮")
if numbers[a] > numbers[b]:
print(f"{numbers[a]}和{numbers[b]}要交换啦")
temp = numbers[a]
numbers[a] = numbers[b]
numbers[b] = temp #把前a相大小排序
print(numbers)
b = b + 1
b = 0
a = a + 1 #我这个不是冒泡,这算什么算法呢......
print(numbers)
输出为:
[2, 6, 3, 9, 7, 4, 5]
第0大轮
第0小轮
6和2要交换啦
[6, 2, 3, 9, 7, 4, 5]
第1小轮
第2小轮
第3小轮
第4小轮
第5小轮
第1大轮
第0小轮
第1小轮
3和2要交换啦
[6, 3, 2, 9, 7, 4, 5]
第2小轮
第3小轮
第4小轮
第5小轮
第2大轮
第0小轮
9和6要交换啦
[9, 3, 2, 6, 7, 4, 5]
第1小轮
6和3要交换啦
[9, 6, 2, 3, 7, 4, 5]
第2小轮
3和2要交换啦
[9, 6, 3, 2, 7, 4, 5]
第3小轮
第4小轮
第5小轮
第3大轮
第0小轮
第1小轮
7和6要交换啦
[9, 7, 3, 2, 6, 4, 5]
第2小轮
6和3要交换啦
[9, 7, 6, 2, 3, 4, 5]
第3小轮
3和2要交换啦
[9, 7, 6, 3, 2, 4, 5]
第4小轮
第5小轮
第4大轮
第0小轮
第1小轮
第2小轮
第3小轮
4和3要交换啦
[9, 7, 6, 4, 2, 3, 5]
第4小轮
3和2要交换啦
[9, 7, 6, 4, 3, 2, 5]
第5小轮
第5大轮
第0小轮
第1小轮
第2小轮
第3小轮
5和4要交换啦
[9, 7, 6, 5, 3, 2, 4]
第4小轮
4和3要交换啦
[9, 7, 6, 5, 4, 2, 3]
第5小轮
3和2要交换啦
[9, 7, 6, 5, 4, 3, 2]
[9, 7, 6, 5, 4, 3, 2]
我又想到一个,这个算冒泡:
numbers = [9,6,3,8,7,4,15]
for i in range(6):
for a in range(6):
temp = 0
print(a)
if numbers[a] < numbers[a+1]:
print(f"{numbers[a]}和{numbers[a+1]}要交换了")
temp = numbers[a]
numbers[a] = numbers[a+1]
numbers[a+1] = temp
print(numbers)
print(numbers)
输出为:
0
1
2
3和8要交换了
[9, 6, 8, 3, 7, 4, 15]
3
3和7要交换了
[9, 6, 8, 7, 3, 4, 15]
4
3和4要交换了
[9, 6, 8, 7, 4, 3, 15]
5
3和15要交换了
[9, 6, 8, 7, 4, 15, 3]
0
1
6和8要交换了
[9, 8, 6, 7, 4, 15, 3]
2
6和7要交换了
[9, 8, 7, 6, 4, 15, 3]
3
4
4和15要交换了
[9, 8, 7, 6, 15, 4, 3]
5
0
1
2
3
6和15要交换了
[9, 8, 7, 15, 6, 4, 3]
4
5
0
1
2
7和15要交换了
[9, 8, 15, 7, 6, 4, 3]
3
4
5
0
1
8和15要交换了
[9, 15, 8, 7, 6, 4, 3]
2
3
4
5
0
9和15要交换了
[15, 9, 8, 7, 6, 4, 3]
1
2
3
4
5
[15, 9, 8, 7, 6, 4, 3]
视频看到了121:50