開始跟着視頻學python,第七天mark【for、list】

視頻位置: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小輪
62要交換啦
[6, 2, 3, 9, 7, 4, 5]1小輪
第2小輪
第3小輪
第4小輪
第5小輪
第1大輪
第0小輪
第1小輪
32要交換啦
[6, 3, 2, 9, 7, 4, 5]2小輪
第3小輪
第4小輪
第5小輪
第2大輪
第0小輪
96要交換啦
[9, 3, 2, 6, 7, 4, 5]1小輪
63要交換啦
[9, 6, 2, 3, 7, 4, 5]2小輪
32要交換啦
[9, 6, 3, 2, 7, 4, 5]3小輪
第4小輪
第5小輪
第3大輪
第0小輪
第1小輪
76要交換啦
[9, 7, 3, 2, 6, 4, 5]2小輪
63要交換啦
[9, 7, 6, 2, 3, 4, 5]3小輪
32要交換啦
[9, 7, 6, 3, 2, 4, 5]4小輪
第5小輪
第4大輪
第0小輪
第1小輪
第2小輪
第3小輪
43要交換啦
[9, 7, 6, 4, 2, 3, 5]4小輪
32要交換啦
[9, 7, 6, 4, 3, 2, 5]5小輪
第5大輪
第0小輪
第1小輪
第2小輪
第3小輪
54要交換啦
[9, 7, 6, 5, 3, 2, 4]4小輪
43要交換啦
[9, 7, 6, 5, 4, 2, 3]5小輪
32要交換啦
[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
38要交換了
[9, 6, 8, 3, 7, 4, 15]
3
37要交換了
[9, 6, 8, 7, 3, 4, 15]
4
34要交換了
[9, 6, 8, 7, 4, 3, 15]
5
315要交換了
[9, 6, 8, 7, 4, 15, 3]
0
1
68要交換了
[9, 8, 6, 7, 4, 15, 3]
2
67要交換了
[9, 8, 7, 6, 4, 15, 3]
3
4
415要交換了
[9, 8, 7, 6, 15, 4, 3]
5
0
1
2
3
615要交換了
[9, 8, 7, 15, 6, 4, 3]
4
5
0
1
2
715要交換了
[9, 8, 15, 7, 6, 4, 3]
3
4
5
0
1
815要交換了
[9, 15, 8, 7, 6, 4, 3]
2
3
4
5
0
915要交換了
[15, 9, 8, 7, 6, 4, 3]
1
2
3
4
5
[15, 9, 8, 7, 6, 4, 3]

視頻看到了121:50

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章