2013-12-15 90 views
0

我想製作一個腳本,將採取用戶輸入和打印值,具體來說,採取一個函數作爲raw_input,並輸入時在字典中打印鍵。我試圖讓它工作幾種方式,但我似乎無法把它解決。我在過去幾天在論壇上提出了幾個問題,只是重申我現在在Python時代已經有4天的時間了。有人能給我一個指針嗎?腳本來打印值

#dictionary of categories and their items 
functions = { 
'Absolute Value':{ 
'abs': 'syntax: abs(number), use:The abs function is used to determine the absolute value 
} 
'Round':{ 
'ro':'syntax: round(number), use: The round function is used to round a number down.' 
} 

#ask user for input as to which function they want 
fnct=raw_input('Choose a function: abs, ro:') 

#if a user chooses a function, map it to this key 
if fnct=='abs':key='abs' 
if fnct=='ro' :key='ro' 

#if a user chooses a function, use the mapped key to print the key value 
if fnct=='abs':print 'abs' 
if fnct=='ro':print 'ro' 

在此先感謝

+0

這裏有什麼問題?另外,在第4行中,你錯過了一個關閉'''。 – jazzpi

+0

您能否考慮更新您的問題的標題以反映您遇到的實際問題。 「打印價值的腳本」非常模糊,幾乎可以描述任何輸出任何內容的程序。 – Iguananaut

回答

0

更新你的代碼,這應該做的正是你想要的東西(假設你要根據用戶輸入打印字典元素的內容):

functions = { 
    "abs":"syntax: abs(number), use:The abs function is used to determine the absolute value", 
    "ro":"syntax: round(number), use: The round function is used to round a number down" 
} 

fnct = None 

while fnct not in functions: 
    fnct = raw_input("Choose a function: abs, ro :") 

print(functions[fnct]) 

所以第一行定義了functions字典,fnct = None定義了該變量,所以我們不會在while循環的第一次迭代中遇到錯誤(因爲input還沒有被調用),循環會檢查輸入值是否實際上存在於字典中(如果它不存在,則循環查詢另一個值,以便在嘗試顯示字典中不存在的內容時不會遇到KeyError),最後顯示內容對應於fnct的值。

+0

我試過了代碼,它成功地提示選擇,但是在選擇時出現了某種錯誤,腳本退出時沒有打印任何東西,我認爲這是因爲打印(函數[fnct])而fnct = None? – user3101688

+1

在python 2.x中'input()'評估用戶輸入的是python代碼,而'raw_input()'只是把它看作一個字符串。在python 3中,沒有python-2輸入等價物,而input()只是'raw_input()'的角色。並不是說你現在不必擔心太多。 – reem

+0

@andre哈,我是andres ....但無論如何,是的,它的工作原理,非常感謝,我仍然在本書的開頭部分,但我需要一些有用的瞭解python以保持齒輪工作,再次感謝。不知道爲什麼我也沒有捕捉到,已經遇到過這個問題 – user3101688