python for循环打印菱形详解

python for循环打印菱形详解_第1张图片

首先查看菱形的图片,可以发现其中的数学规律,假设 *号的数量为m,空格的数量为n,如图所示的菱形可以总结出如下规律

n(空格)  m(*) 

4                1

3                2

2                3

1                4

0                5

下半部分相反即可

那么可以得出空格的规律为n-1,*的规律为m+1

即可得出如下程序

python for循环打印菱形详解_第2张图片

# 打印菱形
number = int(input("请输入你想打印的行数: "))
for i in range(0, number):
    for j in range(0, number - i):
        print(end=" ")
    for k in range(0, i + 1):
        print("*", end=" ")
    print()
for i in range(0, number - 1):
    for j in range(0, i + 2):
        print(end=" ")
    for k in range(0, number - i - 1):
        print("*", end=" ")
    print()

python for循环打印菱形详解_第3张图片 

x = 5
n = 4
m = 0
for i in range(1,x+1):
    print(" " * n + m * " *")
    n = n - 1
    m = m + 1
    if i == 5:
        print("* " * 5)

n = 4
m = 0
for i in range(x):
    print(" " * m + n * " *")
    n = n - 1
    m = m + 1

 

打印结果如下

python for循环打印菱形详解_第4张图片 

那么如果简化一下,寻找变量之间的内部联系,我们发现不仅 n(空格)的递减可以根据循环变量 i 来计算,m(*)设置可以直接用 i 来替代,n(空格)每次 递减 1,相当于第一次减1,第二次减2,而m(*)每次递增 1,相当于第一次的值为1,第二次的值为2,而x(行数)的值可以直接使用 n(空格) 来替代,那么即可得出如下程序

python for循环打印菱形详解_第5张图片

 

n = 5
for i in range(n):
    if i <= n//2:
        print(" "*(n-i-1) + "* "*(i+1))
    else:
        print(" "*(i) + "* "*(n-i))

n = 5
for i in range(1,n+1):
    print(" " * (n-i) + "* " * i)
for i in range(n-1, 0, -1):
    print(" " * (n-i) + "* " * i)

你可能感兴趣的:(笔记,python,开发语言)