双循环案例和pass、break、continue、for循环、range函数

1、双循环案例练习

1.1 十行十列小星星

while j < 10:
    i = 0
    while i < 10:
        print("*",end ="")
        i += 1
    print()
    j += 1
# **********
# **********
# **********
# **********
# **********
# **********
# **********
# **********
# **********
# **********

1.2 十行十列隔列换色小星星

j = 0
while j < 10:
    i = 0
    while i <10:
        if i %2 ==0:
            print("",end="")
        else:
            print("",end="")
        i += 1
    print()
    j += 1
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★
# ☆★☆★☆★☆★☆★

1.3 十行十列隔行换色小星星

j = 0
while j < 10:
    i = 0
    while i < 10:
        if j % 2 == 0:
            print("",end = "")
        else:
            print("",end = "")
        i += 1
    print()
    j += 1

1.4 99乘法表

1.4.1 

i = 1
while i <=9:
    j = 1
    while j <= i:
        print("%d*%d=%2d "%(i,j,i*j),end = "")
        j += 1
    print()
    i += 1
# 1*1= 1 
# 2*1= 2 2*2= 4
# 3*1= 3 3*2= 6 3*3= 9
# 4*1= 4 4*2= 8 4*3=12 4*4=16
# 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
# 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
# 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
# 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
# 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

1.4.2

i = 9
while i >= 1:
    j = 1
    while j <= i:
        print("%d*%d=%-2d "%(i,j,i*j),end = "")
        j += 1
    print()
    i -= 1
# 9*1=9  9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
# 8*1=8  8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
# 7*1=7  7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
# 6*1=6  6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
# 5*1=5  5*2=10 5*3=15 5*4=20 5*5=25 
# 4*1=4  4*2=8  4*3=12 4*4=16 
# 3*1=3  3*2=6  3*3=9  
# 2*1=2  2*2=4  
# 1*1=1

1.4.3

i = 1
while i <= 9:
    k = 9-i
    while k > 0:
        print("       ",end="")
        k -=1
    j = 1
    while j <= i:
        print("%s*%s=%2d "%(i,j,i*j),end="")
        j += 1
    print()
    i += 1
#                                                         1*1= 1 
#                                                  2*1= 2 2*2= 4 
#                                           3*1= 3 3*2= 6 3*3= 9 
#                                    4*1= 4 4*2= 8 4*3=12 4*4=16 
#                             5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 
#                      6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
#               7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
#        8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
# 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

1.4.4

i = 9
while i> 0:
    k = 9 - i
    while k > 0:
        print("       ",end="")
        k -= 1
    j = 1
    while j <= i:
        print("%s*%s=%2d "%(i,j,i*j),end="")
        j += 1
    print()
    i -= 1
# 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
#        8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
#               7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
#                      6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
#                             5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 
#                                    4*1= 4 4*2= 8 4*3=12 4*4=16 
#                                           3*1= 3 3*2= 6 3*3= 9 
#                                                  2*1= 2 2*2= 4 
#                                                         1*1= 1

1.5 在100~999中求吉利数字

方法一:

i = 100
while i <= 999:
    gewei = i % 10
    shiwei = i // 10 % 10
    baiwei = i // 100
    if gewei == shiwei and shiwei == baiwei:
        print(i)
    if gewei == shiwei - 1 and shiwei == baiwei -1:
        print(i)
    if gewei == shiwei + 1 and shiwei == baiwei + 1:
        print(i)
    i += 1

方式二:字符串方式

i = 100
while i <= 999:
    var = str(i)
    a = int(var[0])
    b = int(var[1])
    c = int(var[-1])
    if a == b and b == c:
        print(int(var))
    if a == b +1 and b == c +1:
        print(int(var))
    if a == b-1 and b == c-1:
        print(int(var))
    i += 1

1.6 公鸡1块钱1只,母鸡3块钱一只,小鸡5毛钱一只

问: 用100块钱买100只鸡,有多少种买法?

x = 0
while x <= 100:
    y = 0
    while y <= 33:
        z = 0
        while z <= 100:
            if (x+y+z) == 100 and (x+3*y+0.5*z) == 100:
                print(x,y,z)
            z += 1
        y+= 1
    x +=1

 2、pass、break、continue

2.1 pass:表示占位,无代码块可写时,表示过

if 5 == 5:
pass

2.2 break,表示终止本层循环

if 5 == 5:
    pass
i = 0
while i < 10:
    print(i)
    if i == 5:
        break
    i += 1  #单层循环

i =0
while i < 8:
    print(i)
    j = 0
    while j < 5:
        print(j)
        if j == 2:
            break
        j += 1
    i += 1  # 仅终止掉本层循环

2.3 continue 表示终止本次循环,进入下一次循环

i = 0
while i < 10:
    if i == 8:
        i += 1  # 手动加1.防止进入死循环
        continue
    print("我是" + str(i))
    i += 1

# 打印 1 ~ 100 所有不含有4的数字
# 方式一:
i = 0
while i <= 100:
    if i % 10 == 4 or i // 10 == 4 or i == 4:
        i += 1
        continue
    print(i)
    i += 1
# 方式二:
i = 0
while i <= 100:
    if "4" in str(i):
        i += 1
        continue
    print(i)
    i += 1

3、for循环:可用于遍历容器内的元素(可迭代的对象包括 容器类型的数据、range函数、迭代器)

str1 = "我是一个字符串"
for i in str1:
    print(i,end="")
print(type(i))
# 我是一个字符串<class 'str'>

list1 = ["我是","列表"]
for i1 in list1:
    print(i1,type(i1))
# 我是 <class 'str'>
# 列表 <class 'str'>

tuple1 = ("我是","元祖")
for i2 in tuple1:
    print(i2)

set1 = {"我是","集合"}
for i3 in set1:
    print(i3) # 注意集合的无序性

dict1 = {"我是":"字典"}
for i4 in dict1:
    print(i4) # 我是 仅打印字典的键

4、range函数:

# range函数
# range(start,end,step) 顾头不顾尾
for i in range(1,10,2):
    print(i)  # 1 3 5 7 9

for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%2d "%(i,j,i*j),end="")
        j += 1
    print()
    i += 1

 

posted on 2020-05-09 09:09  fdsimin  阅读(512)  评论(0编辑  收藏  举报