2012-04-11 84 views
0

我正尝试使用用户输入的Python创建一个数字三角形。我写了一段代码,但不知道如何在Python中做一件事。我想将打印(“下一行”)相应地更改为相应的行。我怎么做?从用户输入创建一个数字三角形

代码:

numstr= raw_input("please enter the height:") 
rows = int() 
def triangle(rows): 
    for rownum in range (rows) 
     PrintingList = list() 
     print("Next row") 
     for iteration in range (rownum): 
      newValue = raw_input("Please enter the next number:") 
      PrintingList.append(int(newValue)) 
      print() 

有没有在我的代码的任何错误?还是有任何改进建议?请你告诉我..谢谢...

+1

显示你所拥有的输出,并解释它有什么问题,最好以所需输出为例。 – Marcin 2012-04-11 12:41:46

+0

你的代码有几个语法问题 – luke14free 2012-04-11 12:42:21

+0

@ luke14free可以解释它们是什么......它将会非常有用...... – lakesh 2012-04-11 14:46:50

回答

1

我不完全知道什么是期望行为的程序,但这里是我的猜测:

numstr= raw_input("please enter the height:") 

rows = int(numstr) # --> convert user input to an integer 
def triangle(rows): 
    PrintingList = list() 
    for rownum in range (1, rows + 1): # use colon after control structure to denote the beginning of block of code   
     PrintingList.append([]) # append a row 
     for iteration in range (rownum): 
      newValue = raw_input("Please enter the next number:") 
      PrintingList[rownum - 1].append(int(newValue)) 
      print() 

    for item in PrintingList: 
     print item 
triangle(rows) 

这里是输出:

please enter the height:3 
Please enter the next number:1 
() 
Please enter the next number:2 
() 
Please enter the next number:3 
() 
Please enter the next number:4 
() 
Please enter the next number:5 
() 
Please enter the next number:4 
() 
[1] 
[2, 3] 
[4, 5, 4] 
1

你可以改变你的代码,这一个:

numstr= raw_input("please enter the height:") 
rows = int(numstr) 
def triangle(rows): 
    for rownum in range (rows): 
     PrintingList = list() 
     print "row #%d" % rownum 
     for iteration in range (rownum): 
      newValue = raw_input("Please enter the number for row #%d:" % rownum) 
      PrintingList.append(int(newValue)) 
      print() 

通过使用print "%d" % myint可以打印一个整数。

+0

这不适用于python3,我认为* OP正在使用(因为他正在调用'print'作为一个函数)。 – Marcin 2012-04-11 12:54:52

1

如果我理解你的问题,请将print("Next row")更改为print("Row no. %i" % rownum)

阅读字符串文档,其中说明了%格式代码的工作原理。

0
n = int(input()) 

for i in range(n): 
    out='' 
    for j in range(i+1): 
     out+=str(n) 
    print(out) 

这将打印以下:

>2 

2 
22 

>5 

5 
55 
555 
5555 
55555 

这是你在找什么?