首页 > 解决方案 > 如何在不使用范围函数的情况下在 python 中编写数字金字塔?

问题描述

我必须在 python 中编写代码以显示以下输出:菱形形状的
1
1 2 1
1 2 3 2 1
1 2 1
1
。但我不能在代码中使用范围函数。

我使用范围编写了以下代码:

rows = 4
for i in range(rows+1):
    s=0
    for k in range(rows-i):
        print(end=" ")
    for j in range(i+1):
        s=s+10**(i-j)
    print(s*s)
    print(" ")
for i in range(rows-1,-1,-1):
    s=0
    for k in range(rows-i):
        print(end=" ")
    for j in range(i+1):
        s=s+10**(i-j)
    print(s*s)
    print(" ")

请帮助我了解如何在不使用范围函数的情况下编写代码。

标签: pythonpython-3.xnumbers

解决方案


您可以创建自己的rangenot_range:P

not_range返回一个listab

不在任何地方使用内置range

def not_range(a,b):
    if a<b:
        return [a]+not_range(a+1,b)
    elif a>b:
        return [a]+not_range(a-1,b)
    else:
        return []

rows = 4
for i in not_range(0,rows+1):
    s=0
    for k in not_range(0,rows-i):
        print(end=" ")
    for j in not_range(0,i+1):
        s=s+10**(i-j)
    print(s*s)
    print(" ")
for i in not_range(rows-1,-1):
    s=0
    for k in not_range(0,rows-i):
        print(end=" ")
    for j in not_range(0,i+1):
        s=s+10**(i-j)
    print(s*s)
    print(" ")
    1
 
   121
 
  12321
 
 1234321
 
123454321
 
 1234321
 
  12321
 
   121
 
    1
 

推荐阅读