2014-10-27 61 views
0

我在一個有趣的模擬器上工作,在那裏詢問你的年齡,如果你足夠老,會問你是否有kik。如果你的年齡在16歲以上,那麼它就可以正常工作,但如果你說的話少於這個數字,就會出現錯誤。這是代碼:如何解決我在Python中的if,elif,else語句?

Traceback (most recent call last): 
    File "C:/Users/Public/Documents/python/omegle.py", line 36, in <module> 
    if kik == yes: 
NameError: name 'kik' is not defined 

有誰知道如何解決它:

age = input("age?\n") 
if age == "1": 
    print ("Too young bby") 
elif age == "2": 
    print ("Too young bby") 
elif age == "3": 
    print ("Too young bby") 
elif age == "4": 
    print ("Too young bby") 
elif age == "5": 
    print ("Too young bby") 
elif age == "6": 
    print ("Too young bby") 
elif age == "7": 
    print ("Too young bby") 
elif age == "8": 
    print ("Too young bby") 
elif age == "9": 
    print ("Too young bby") 
elif age == "10": 
    print ("Too young bby") 
elif age == "11": 
    print ("Too young bby") 
elif age == "12": 
    print ("Too young bby") 
elif age == "13": 
    print ("Too young bby") 
elif age == "14": 
    print ("Too young bby") 
elif age == "15": 
    print ("Too young bby") 
else: 
    kik = input("Do you have kik?\n") 
yes = "yes" 
if kik == yes: 
    print ("add me bby") 
else: 
    print ("bye") 

,來了是錯誤?

+10

在上帝的面上,請演員年齡爲整數,只是使用'如果年齡<16:'。 – Matthias 2014-10-27 17:54:35

+0

你需要更多的縮進;這在Python中很重要。 – jonrsharpe 2014-10-27 17:56:07

回答

2

的問題是,你只能在這個塊設置kik

else: 
    kik = input("Do you have kik?\n") 

如果沒有達到這個塊, kik不存在。一個選項是在你的if/elif塊之前設置它。


此外,還可以讓這個更短:

kik = "no" 
age = input("age?\n") 
if int(age) < 16: 
    print ("Too young bby") 
else: 
    kik = input("Do you have kik?\n") 
yes = "yes" 
if kik == yes: 
    print ("add me bby") 
else: 
    print ("bye") 
1

設置爲kik默認情況下,它應該在您的鏈條之外。

age = input("age?\n") 
kik = "no" #assuming no is default 
... 

因爲它是在你的代碼,它只會如果你打else

2

有一對夫婦的事情,你應該在這裏修復定義。首先,使用int()存儲時代數字:

age = int(input("age?\n")) 

然後做一個小於:

if(age < 16): 
    print ("Too young bby") 
else: 
    kik = input("Do you have kik?\n") 
    if kik == "yes": 
    print ("add me bby") 
    else: 
    print ("bye") 
1

簡短的回答是,kik超出範圍,並把kik = "no"之初你的程序應該擺脫那個錯誤。

但是,這裏有一個更好的方式做這件事:

age = int(input("age?\n")) 
kik = "no" 

if age < 16: 
    print ("Too young bby") 
else: 
    kik = input("Do you have kik?\n") 

if kik == yes: 
    print ("add me bby") 
else: 
    print ("bye") 
+1

_「簡短的回答是,需要用引號」_。我不知道這一點。無論您使用字符串文字'「yes」'還是名爲'yes'的變量,條件都應同樣有效。 – Kevin 2014-10-27 17:56:54

+0

是的,你說得對。我認爲追溯是在抱怨「是」超出範圍,而不是「kik」。我更新了我的答案。 – RPGillespie 2014-10-27 17:59:06