Domanda

I was looking at a post by Don Marco that involved making Pascal's Triangle in python. I wanted to understand the code better so I tried played with it and tried to have it take a user input. This is the code I used:

def triangle(rows):
    row_ans= raw_input('how many rows would you like')
    row_ans =int(row_ans)
    for rownum in range (rows):
        newValue=1
        PrintingList = [newValue]
        for iteration in range (rownum):
            newValue = newValue * ( rownum-iteration ) * 1 / ( iteration + 1 )
            PrintingList.append(int(newValue))
        print(PrintingList)
    print()
triangle(row_ans)

It didn't ask for any user input and I got this error:

Traceback (most recent call last):
  File "/Users/centralcity/Desktop/Computer Science!/Pascal's triangle", line 13, in 
<module>          
    triangle(row_ans)
  File "/Users/centralcity/Desktop/Computer Science!/Pascal's triangle", line 3, in       
  triangle      
for rownum in range (rows):
    TypeError: range() integer end argument expected, got str.

please keep in mind I'm fairly new too python. Thanks in advance.

È stato utile?

Soluzione

You're passing the wrong parameter to range(). Try this in the outermost for loop:

range(row_ans)

Also notice that the rows parameter is not being used, delete it from the function declaration and simply call the function like this:

triangle()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top