开始跟着视频学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

猜你喜欢

转载自blog.csdn.net/weixin_42944682/article/details/105565995