【漫漫转码路】Python Day 09

一、while循环语句

# while语句结构
while 条件:
    执行语句

1、输出1-100不带6的数字的和

# 方法一:用除法
i = 1
sum = 0
while i <= 100:
    if i // 10 != 6 and i % 10 != 6:
        sum += i
    i += 1
print(sum)
# 终端显示
3961
# 方法二、用字符串
i = 1
sum = 0
while i <= 100:
    if '6' not in str(i):  # 此处用index,count都可以达到同样的效果;
        sum += i
    i += 1
print(sum)
# 终端显示
3961

2、while True

当while后面直接是值,且值的判定为True的时候,while即实现死循环,即无终止的循环;

# 例如
a = 1
while 0:
    print(a)
    print('执行0')  # 终端显示不执行
while 1:
    print(a)
    print('执行1')  # 不停的执行

3、while…else…

break:使循环强行中止;

# 例如
while 条件:
	语句
else:
	语句  

当while正常结束后,执行else,如果while被break中止,则不会执行else;

# 例如,有break
a = 1
while a <= 1:
    print(a)
    a += 1
    break
else:
    print('此行输出1')
# 终端显示
1
# 例如 没有break
a = 1
while a <= 1:
    print(a)
    a += 1
else:
    print('此行输出0')
# 终端显示
1
此行输出0

4、while循环嵌套

用while循环嵌套写一个九九乘法表

# 例如
L = 1
while L < 10:
    R = 1
    while R <= L:
        print(f'{L}x{R}={L*R}', end='\t')
        R += 1
    L += 1
    print()
# 终端显示
1x1=1
2x1=2   2x2=4
3x1=3   3x2=6   3x3=9
4x1=4   4x2=8   4x3=12  4x4=16
5x1=5   5x2=10  5x3=15  5x4=20  5x5=25
6x1=6   6x2=12  6x3=18  6x4=24  6x5=30  6x6=36
7x1=7   7x2=14  7x3=21  7x4=28  7x5=35  7x6=42  7x7=49
8x1=8   8x2=16  8x3=24  8x4=32  8x5=40  8x6=48  8x7=56  8x8=64
9x1=9   9x2=18  9x3=27  9x4=36  9x5=45  9x6=54  9x7=63  9x8=72  9x9=81

注意:
如果变为

# 例如
L = 1
while L < 10:
    R = 1
    while R <= L:
        print(f'{L} x {R}={L*R}', end='\t') # 此处{L} x {R}中x左右各加一个空格
        R += 1
    L += 1
    print()
# 终端显示
1 x 1=1
2 x 1=2 2 x 2=4
3 x 1=3 3 x 2=6 3 x 3=9
4 x 1=4 4 x 2=8 4 x 3=12        4 x 4=16
5 x 1=5 5 x 2=10        5 x 3=15        5 x 4=20        5 x 5=25
6 x 1=6 6 x 2=12        6 x 3=18        6 x 4=24        6 x 5=30        6 x 6=36
7 x 1=7 7 x 2=14        7 x 3=21        7 x 4=28        7 x 5=35        7 x 6=42        7 x 7=49
8 x 1=8 8 x 2=16        8 x 3=24        8 x 4=32        8 x 5=40        8 x 6=48        8 x 7=56        8 x 8=64
9 x 1=9 9 x 2=18        9 x 3=27        9 x 4=36        9 x 5=45        9 x 6=54        9 x 7=63        9 x 8=72        9 x 9=81

{L} x {R}中x左右各加一个空格,结果将截然不同,加空格之后,2 x 1=1占位7个,与2 x 2=4之间的制表符没有问题,制表符会从下一个8位开始对齐,但是一旦结果成为两位数,4 x 3=12将占位8个,也就是占满8个位,再有制表出现,则直接跳8个字符开始对齐,故出现上面的情况;

二、for循环语句

1、for语句

# 例如
# for语句格式
for 变量 in 可迭代对象:
    语句
# for...else...语句格式
for 变量 in 可迭代对象:
    语句
else:
    语句  # 注意for else语句和while else语句一样,当循环被中止时,不执行else

九九乘法表的for写法:

# 例如
for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{i}x{j}={i*j}', end='\t')
    print()
# 终端显示
1x1=1
2x1=2   2x2=4
3x1=3   3x2=6   3x3=9
4x1=4   4x2=8   4x3=12  4x4=16
5x1=5   5x2=10  5x3=15  5x4=20  5x5=25
6x1=6   6x2=12  6x3=18  6x4=24  6x5=30  6x6=36
7x1=7   7x2=14  7x3=21  7x4=28  7x5=35  7x6=42  7x7=49
8x1=8   8x2=16  8x3=24  8x4=32  8x5=40  8x6=48  8x7=56  8x8=64
9x1=9   9x2=18  9x3=27  9x4=36  9x5=45  9x6=54  9x7=63  9x8=72  9x9=81

注意:
for i in iterable中,iterable是可迭代对象,同时可以对变量进行多个赋值,比如:

# 例如
for i,j in zip('abcde', '12345'):
    print(i, j)
for a in zip('abcde', '12345'):
    print(a)
# 终端显示
# 输出i,j
a 1
b 2
c 3
d 4
e 5
# 以下为输出a
('a', '1')
('b', '2')
('c', '3')
('d', '4')
('e', '5')

注意:
zip里面是多个可迭代对象,即里面直接加数据,zip返回迭代器,迭代器只能使用一次,如果使用了一半,则后面只能调用后面的一半,已经使用过一次的一半不再支持使用;
可以是zip('abcde', '12345')
不可以是zip(['abcde', '12345'])
如果zip里面是两个列表,则会将其看做整体;

# 例如
ex1 = ['abcde']
ex2 = ['12345']
for a in zip(ex1, ex2):
    print(a)
# 终端显示
('abcde', '12345')
# 例如
i = 1
res = zip('abcde', '12345')  # zip返回值是迭代器,是可迭代对象
for a in res:
    print(a)
    i += 1
    if i > 3:
        break
print('---------分隔线--------------')
print(list(res))
# 终端显示
('a', '1')
('b', '2')
('c', '3')
---------分隔线--------------
[('d', '4'), ('e', '5')]  # 之前zip没有用完,再一次调用时,只能调用未使用过的部分

2、enumrate语句

enumrate(iterable, start = 0):枚举,返回一个迭代器,将iterable中的元素一个一个拿出来并与索引组合,start决定了输出结果索引开始的序号;

# 例如
str = 'abcdefg'
res = enumerate(str)
print(list(res))
res1 = enumerate(str, 100)
print(list(res1))
# 终端显示
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g')]
[(100, 'a'), (101, 'b'), (102, 'c'), (103, 'd'), (104, 'e'), (105, 'f'), (106, 'g')]

你可能感兴趣的:(转码,python,开发语言,人工智能)