Python使用for循环打印直角三角形、九九乘法表、金字塔


1. 四种直角三角型

1.1 直角在左上方

# 打印形状 #
*****
****
***
**
*

# 实现代码 #
# 输入层数
a = int(input('请输入层数:'))

for i in range(a):
    print('*'*(a - i))			# 若要使打印出的星号✳️之间有空格,将'*'改为'* '即可

1.2 直角在左下方

# 打印形状 #
*
**
***
****
*****

# 实现代码 #
# 输入层数
a = int(input('请输入层数:'))

for i in range(a):
    print('*'*(i + 1))

1.3 直角在右上方

# 打印形状 #
*****
 ****
  ***
   **
    *

# 实现代码 #
# 输入层数
a = int(input('请输入层数:'))

# 可以将第三第四种三角形看作一个由' '和'*'组成的矩形,
# >>> 因此,每行的' '和'*'数量相加必等于a <<<
for i in range(a):
    print(' '*i + '*'*(a - i))

1.4 直角在右下方

# 打印形状 #
    *
   **
  ***
 ****
*****

# 实现代码 #
# 输入层数
a = int(input('请输入层数:'))

# 可以将第三第四种三角形看作一个由' '和'*'组成的矩形,
# >>> 因此,每行的' '和'*'数量相加必等于a <<<
for i in range(a):
    print(' '*(a - 1 - i) + '*'*(i + 1))

2. 两种九九乘法表

2.1 常规

九九乘法表重点在于由两个for循环控制输出
核心是第二个循环的范围由第一个循环的参数决定

# 输入层数
a = int(input('请输入层数:'))

for i in range(1, 10):
    for j in range(1, i+1):
        print('{}*{}={:<5d}'.format(j, i, i*j), end='')		# 使用format格式化输出
    print()

2.2 非常规

# 输入层数
a = int(input('请输入层数:'))

for i in range(1, 10):
    for j in range(i, 10):
        print('{}*{}={:<5d}'.format(i, j, i*j), end='')		# 使用format格式化输出
    print()

3. 金字塔

3.1 正金字塔

# 打印形状 #
	*
   ***
  *****
 *******
*********
    
# 实现代码 #
# 将金字塔看作一个由左边矩形、右边三角形组成的图形(拆分如下)
# for i in range(a):
#     print('~'*(a - 1 - i) + '*'*(i + 1) + '  ' + '*'*i)

# 输入层数
a = int(input('请输入层数:'))

for i in range(a):
    print(' '*(a - 1 - i) + '*'*(i + 1) + '*'*i)

3.2 倒金字塔

# 打印形状 #
*********
 *******
  *****
   ***
    *
    
# 实现代码 #
# 输入层数
a = int(input('请输入层数:'))

for i in range(a):
    print(' '*i + '*'*(a - i) + '*'*(a - 1 - i))

3.3 数字金字塔

# 打印形状 #
          0
        1 0 1
      2 1 0 1 2
    3 2 1 0 1 2 3 
  4 3 2 1 0 1 2 3 4
5 4 3 2 1 0 1 2 3 4 5
    
# 实现代码 #
# 输入层数
a = int(input('请输入层数:'))

for i in range(a+1):
    # 调节数字前方空格数量
    # 可针对层数为一位数、两位数的金字塔打印
    if i < 10:                                              
        print(' '*(a - 8) + '  '*(a + 1 - i), end='')
    else:
        print('   ' * (a + 1 - i), end='')

    # 输出金字塔左半部分(包括0)
    j = i
    while j != -1:
        print(j, end=' ')
        j = j - 1

    # 输出金字塔右半部分(不包括0)
    j = 1
    while j != i + 1:
        print(j, end=' ')
        j = j + 1

    print()
发布了14 篇原创文章 · 获赞 6 · 访问量 372

猜你喜欢

转载自blog.csdn.net/Sherlooock/article/details/105557411