内存错误Python楼梯

时间:2017-08-15 09:21:53

标签: python-3.x

您好我正在为Grok学习(网站)测试编写代码我一直在Mac上测试我的代码(乱搞学校应该使用电脑)似乎没有任何东西出现约1分钟然后我的网页重新加载这出现在代码显示运行形式的区域:

Traceback (most recent call last):
  File "program.py", line 6, in <module>
    print(" " * number + "|")
MemoryError

我可以获得一些帮助,了解这一点我以前从未见过吗? (以下代码)

a=0
number = int(input("How many steps? "))
print("__")
if number != 1:
  while a < number:
    print(" " * number + "|")
    a = a + 1
    print(" " * number + "_")
    number = number * 2
elif number == 1:
  print("__|")

代码用于使用用户输入中的下划线和管道字符制作楼梯(包括解释的屏幕截图)

2 个答案:

答案 0 :(得分:1)

所以假设这是输入4的所需输出:

How many steps? 4
__
  |__
     |__
        |__
___________|

你可以这样做:

number = int(input("How many steps? "))
print("__")
for a in range(1, number):
    offset = a*2 + a - 1
    print(" " * (offset) + '|' + ('__' if a < number else ''))
offset = number*2 + number - 1
print("_" * (offset) + '|')

基本上你可以在开头摆脱number != 1检查,因为它对于任何输入应该表现相同。然后循环执行步骤数。在每一步中,您都会获得偏移量,即步数(a)的两倍,加上前一个管道字符的偏移量。然后检查是否有一个步骤,因此您可以将下划线放在同一行。最后,在最后一步(在for循环之外),你只需要放置所有下划线而不是空格和最后的管道字符

答案 1 :(得分:0)

这是一个简单的版本(这也是Grok Learning建议这样做的方式)。

n = int(input("How many steps? "))
print("__")
for i in range(n - 1):
  print('  '*(i + 1) + "|_")
print("__"*n + "|")

我希望这会有所帮助!