我不确定某个代码行是做什么的

时间:2016-09-06 12:23:52

标签: python

我试图让一个程序使用Python来创建一个基于数字n的“金字塔”,并且想出了这个:(我会打印nn,这就是行。)

import time

n = 0
while True:
    n += 2 #just another way to show n=n+2
    nn = n, "o" #nn would be an amount of o's, based on what #n was
    time.sleep(1)
    print (nn, str.center(40, " "))

不确定如何制作n并且不确定第6行是做什么的。有谁知道这两个问题的答案? (我不是在课堂上只是为了好玩而编程。)

4 个答案:

答案 0 :(得分:1)

import time

n = 0
while True:
    n += 2 #just another way to show n=n+2
    nn = "o" * n #nn would be an amount of o's, based on what #n was
    time.sleep(1)
    print (nn.center(40," "))

正如有人在评论中所提及的那样,#34; o" * n将给出一个包含n" o" s的字符串。 我已经修复了打印行以使用正确的方法a调用中心方法。

答案 1 :(得分:1)

你可以试试这个:

from __future__ import print_function
import time

for n in range(0, 40, 2):
    nn = n * "o" #nn would be an amount of o's, based on what #n was
    time.sleep(1)
    print(nn.center(40, " "))

答案 2 :(得分:1)

这将是您的问题的答案

import time

n = 0
while True:
    n += 2
    nn = n * "o"
    time.sleep(1)
    print (nn.center(40, " "))
    if n > 30:
        break

他们放time.sleep(1)的原因是让它看起来像动画。 print (nn, str.center(40, " "))必须将其更改为nn.center(40, " "),因为.center是一种字符串方法。

答案 3 :(得分:1)

您还可以使用python提供的built-in formatting options。看看这个:

def pyramid_builder(height, symbol='o', padding=' '):
    for n in range(0, height, 2):  # wonkiness-correction by @mhawke
        print('{0:{1}^{2}}'.format(symbol*n, padding, height * 2))

pyramid_builder(20, 'o')

^符号表示您希望打印居中。在它之前({1})出现填充符号,然后是({2})总宽度。

这是完全可定制的,并且很有趣。