只是隨便學習python在這裏,並試圖寫fizzbuzz。我正在讀一本書讓我去,但只是想嘗試自己的東西,因爲我認爲這將爲我學習最好的,因爲它通常在學習的東西時。所以這是我的本錢:變量不想定義,一般建議
def input_and_test():
print "Gimme something and it better be a number or shit ain't gon work"
inputt = raw_input()
inputt = str(inputt)
try:
input_data_type = int(inputt)
except ValueError:
print "Yeah that sure as hell ain't a number, sonny"
input_and_test()
else:
print 'Great, now lemme check'
input_and_test()
input_lenght = len(inputt)
input_lenght = int(int(input_lenght) - 1)
last_number = inputt[input_lenght]
if input == 1:
print 'Even'
elif last_number == 0 or last_number == 2 or last_number == 4 or last_number == 6 or last_number == 8:
print 'Even'
else:
print 'Odd'
現在,我敢肯定,這是可怕的低效但是,這並不重要,因爲我想學習如何做這個「辦法」。它會引發這個錯誤:
Traceback (most recent call last):
File "C:\Python27\test.py", line 16, in <module>
input_lenght = len(inputt)
NameError: name 'inputt' is not defined
爲什麼?我沒有在我剛纔調用的第一個函數中定義inputt嗎?有沒有更好的方法來取代異常處理,並再次啓動功能的一部分,修復所有這些?關於這個代碼的任何不好的事情(除了它不是最佳的fizzbuzz),我應該在將來避免?再次抱歉,這是令人討厭的糟糕,這個問題可能很簡單。我感謝任何和所有的幫助!
函數中定義的變量在函數外部是不可見的,除非用'global'聲明它們。 – Barmar
你應該儘量避免使用全局變量。函數應該從參數中獲得輸入,並使用'return'將數據返回給調用者。 – Barmar
確保你發佈了正確縮進的代碼。由於Python使用縮進來解析代碼的結構,因此我們需要了解如何縮進代碼以理解它。 – Barmar