2014-01-06 69 views
1

我正在看Don Marco的一篇文章,其中涉及到在Python中製作Pascal三角形。我想更好地理解代碼,所以我試着玩它,並試圖讓它接受用戶輸入。這是我使用的代碼:在帕斯卡的三角形中使用raw_input

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) 

它沒有要求任何用戶輸入,我得到這個錯誤:

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. 

請記住我是相當新太蟒蛇。提前致謝。

回答

1

您將錯誤的參數傳遞給range()。在最外層for循環試試這個:

range(row_ans) 

還要注意,在不使用的rows參數,從函數聲明刪除它,簡單地調用這樣的功能:

triangle() 
+0

我得到這個錯誤,感謝您幫助我解決部分問題:Traceback(最近一次調用最後一次): 三角形(row_ans) NameError:第13行中的第13行「/ Users/centralcity/Desktop/Computer Science!/ Pascal's triangle」名稱'row_ans'未定義 – user3163789

+1

@ user3163789當然,錯誤非常明顯:當你調用'triangle(rowans)'時,變量'row_ans'還不存在。看到我的編輯答案。 –

+1

@ user3163789如果以上解決了您的問題,請不要忘記[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)這個答案,通過點擊左邊的複選標記;) –