使用python的新手需要幫助弄清楚爲什麼我的命令行正在吐出巨大的數字串,而不是我傳入的var的fib序列。這裏是我到目前爲止:奇怪的輸出運行一個斐波那契數列
import sys
def fib(n):
a, b = 0, 1
while a < n:
print a
a, b = b, a+b
if __name__ == "__main__":
fib(sys.argv[1])
我沒有sys.argv中現在擺在[1]或[1:]我能夠把序列中的N達到我想要的號碼。即如果我輸入n作爲12,我會得到0,1,1,3,5,8,這是正確的。不過,我無法得到這個工作。我在def fib(n)後做了一個打印語句:as print n。它會返回我的sys.argv傳入。
我在哪裏出錯了?謝謝你的時間。
謝謝你做的工作,我會關閉問題來分鐘8.如果我可能打擾你夠了,爲什麼我需要指定它是一個整數,而不是讓Python自己假設,如果我通過值?它是否看到程序的名稱,然後是我傳入的字符串? – camihan
@camihan在所有具有接收命令行參數的機制的編程語言中,它們都以'string'類型的形式傳遞。反思一下,Python沒有辦法知道什麼數據類型被作爲參數傳遞(它是「1」,「1」還是「1.0」)?所以它假定它們都是字符串,而程序員的任務是將它們轉換爲適當的數據類型。 –
非常感謝你。 – camihan