day05-Python运维开发基础(双层循环、pass/break/continue、for循环)

 

 

 

# ### 双层循环练习

# 十行十列小星星
j = 0
while j<10:

    # 逻辑代码写在下面
    # 打印一行十个小星星
    i = 0
    while i<10:
        print("*",end="")
        i+=1
        
    # 打印换行
    print()

    j+=1

# 十行十列隔列换色小星星
j = 0
while j<10:
    # 打印星星
    i= 0
    while i<10:
        if i % 2 == 0:
            print("",end="")
        else:
            print("",end="")
        i+=1
    # 打印换行
    print()
    
    j+=1


# 十行十列隔行换色小星星
"""j动的慢,i动的快,外面循环动一次,里面循环动10次"""
j = 0
while j<10:
    # 打印星星
    i= 0
    while i<10:
        if j % 2 == 0:
            print("",end="")
        else:
            print("",end="")
        i+=1
    # 打印换行
    print()
    
    j+=1

"""
j = 0  j % 2 ★★★★★★★★★★
j = 1  j % 2 ☆☆☆☆☆☆☆☆☆☆
...
依次类推
"""


# 99乘法表
"""   '%d*%d=%2d' % (值1,值2,值3) 字符串的格式化  """
# 方向一 (正序 1~9)
i = 1
while i<=9:
    
    j = 1
    while j<=i:
        # print(i,j)
        # 打印对应的表达式
        print("%d*%d=%2d " % (i,j,i*j) , end="" )
        j+=1
        
    # 打印换行
    print()
    
    i+=1

# 方向二 (倒序 9~1)
print("<============>")
i = 9
while i>=1:

    j = 1
    while j<=i:
        # print(i,j)
        # 打印对应的表达式
        print("%d*%d=%2d " % (i,j,i*j) , end="" )
        j+=1
        
    # 打印换行
    print()


    i-=1

print(",=============.")
# 方向三 
i = 1
while i<=9:

    # (1)打印空格 (8 ~ 1)
    k = 9 - i
    while k>0:
        print("       ",end="")
        k-=1
    
    
    # (2)打印星星
    j = 1
    while j<=i:
        # print(i,j)
        # 打印对应的表达式
        print("%d*%d=%2d " % (i,j,i*j) , end="" )
        j+=1
        
    # (3)打印换行
    print()
    
    i+=1
    
print("<====================>")
# 方向四
i = 9
while i>=1:

    # (1)打印空格 (8 ~ 1)
    k = 9 - i
    while k>0:
        print("       ",end="")
        k-=1
    
    
    # (2)打印星星
    j = 1
    while j<=i:
        # print(i,j)
        # 打印对应的表达式
        print("%d*%d=%2d " % (i,j,i*j) , end="" )
        j+=1
        
    # (3)打印换行
    print()
    
    i-=1
    
    
# 求吉利数字100 ~ 999  123 321 111 222 333 ...  666 888 567  765
"""
765
// 可以取到一个数高位
%  可以取到一个数低位

个位: 765 % 10  => 5
十位: 765 // 10 % 10 => 6
百位: 765 // 100 => 7
"""


# 方法一:
i = 100
while i<=999:
    # 个位
    gewei = i % 10
    # 十位
    shiwei = i // 10 % 10
    # 百位
    baiwei = i // 100
    # print(baiwei,shiwei,gewei)
    
    # 555 666  777 
    if shiwei == gewei and  shiwei == baiwei:
        print(i)
    # 567 789
    elif shiwei == gewei - 1 and  shiwei == baiwei + 1:
        print(i)
    elif shiwei == gewei + 1 and  shiwei == baiwei - 1:
        print(i)

    i+=1
    
    
# 方法二
print("<=====================>")
"""
strvar = "789"
strvar[0]
strvar[1]
strvar[-1]
"""
i = 100
while i<=999:
    num = str(i)
    # 个位
    gewei = int(num[-1])
    # 十位
    shiwei = int(num[-2])
    # 百位
    baiwei = int(num[-3])
    
    # 555 666  777 
    if shiwei == gewei and  shiwei == baiwei:
        print(i)
    # 567 789
    elif shiwei == gewei - 1 and  shiwei == baiwei + 1:
        print(i)
    # 765 
    elif shiwei == gewei + 1 and  shiwei == baiwei - 1:
        print(i)
    
    
    i+=1
    

# 百钱买百鸡 公鸡,母鸡,小鸡,公鸡1块钱一只,母鸡3块钱一只,小鸡是5毛钱一只,问100块钱买100只鸡,有多少种买法
"""
穷举法:一个一个试
a = [1,2]
b = [3,4]
c = [5,6]

a+b+c = 10?
1 + 3 + 5 = 9
1 + 3 + 6 = 10 ok
1 + 4 + 5 = 10 ok
1 + 4 + 6 = 11

2 + 3 + 5 = 10 ok
2 + 3 + 6 = 11 
2 + 4 + 5 = 11
2 + 4 + 6 = 12

公鸡 : x
母鸡 : y
小鸡 : z
# 100只
x+y+z = 100 
# 100块
x+3y+0.5z = 100
通过and 把两个条件拼接在一起
"""
x = 0
count = 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):
                count+=1
                print(x,y,z)
            z+=1
    
        y+=1
    
    x+=1
print(count)
双层循环 示例代码

相关文章:

  • 2021-12-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-02
  • 2021-12-25
  • 2022-02-07
  • 2021-07-05
猜你喜欢
  • 2021-10-21
  • 2021-04-09
  • 2021-04-03
  • 2022-12-23
  • 2021-12-02
  • 2021-05-11
  • 2021-08-02
相关资源
相似解决方案