2015-07-06 65 views
0

基本上我有數字從1-12與相應的值。如果用戶輸入3,如何顯示輸出爲b,a,l和k?如何在python中顯示除當前值之外的前4個值?

mm=int(raw_input("enter a number")) 
ans = { 
    "1":"a", 
    "2":"b", 
    "3":"c", 
    "4":"d", 
    "5":"e", 
    "6":"f", 
    "7":"g", 
    "8":"h", 
    "9":"i", 
    "10":"j", 
    "11":"k", 
    "12":"l" 
} 
v=(mm-1)%12 
w=(mm-2)%12 
x=(mm-3)%12 
y= (mm-4)%12 

print ans[str(v)] 
print ans[str(w)] 
print ans[str(x)] 
print ans[str(y)] 

如果有人幫助我使用此代碼或任何其他替代方式,我將會很有幫助。

+0

那麼上面的代碼有什麼問題? –

+0

你現在得到什麼? – Evert

+0

問題是當值得到3-3它的0,所以它不工作。給出,keyError'0'我不想這樣,如果它變爲0,則取值12. – HunterrJ

回答

1

如果你可以使用列表代替dictionnaries,我會跟

def get_ans(index): 
    ans = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"] 
    end = index - 1 
    start = end - 4 
    if start < 0: 
     result = ans[start:] + ans[:end] 
    else: 
     result = ans[start:end] 
    print result 

if __name__ == "__main__": 
    mm=int(raw_input("enter a number ")) 
    get_ans(mm) 

去如果你不能直接使用名單,我建議使用range來生成你需要的4個整數,並在你的字典中查找它們的值。

+0

謝謝,正是我想要的。歡呼聲(y) – HunterrJ

0

這是你想要做的嗎?

mm = 1 

def ans(i): 
    i = (i+1)%12 
    return chr(i+97) 

def get_answer_list(i): 
    return [ans((i-1)%12), ans((i-2)%12),ans((i-3)%12),ans((i-4)%12)] 

print(get_answer_list(mm)) 

這然後可以簡化爲

mm = 1 

def ans(i): 
    return chr(i+97) 

def get_answer_list(i): 
    return [ans(i%12), ans((i-1)%12),ans((i-2)%12),ans((i-3)%12)] 

print(get_answer_list(mm)) 
+0

謝謝,但它只顯示字符,我需要從'n'字符串列表中顯示它。 – HunterrJ

+0

好的,已更新。現在它返回一個列表。 –

+0

你應該更新'get_answer_list'中的變量名稱('nm - > i') –