2011-11-28 181 views
0

我的節目需要的用戶輸入,例如:的Python分裂 '123' 變成 '1', '2', '3'

>>> x = input() 
>>> 1 
>>> print x 
>>> one 

我的實際代碼:

>>> import string 
>>> numbers = ['0','1','2','3','4','5','6','7','8','9'] 
>>> wordNumbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] 
>>> myDict = dict(zip(numbers, wordNumbers)) 
>>> myVar = (raw_input("Enter a number to be tranlated: ")) 

>>> for translate in myVar.split(): 
>>>  print(myDict[translate]) 

的問題是我需要用戶輸入123和我的程序輸出one two three,但它不是由於某種原因。

我在想,如果我在123之間添加一些空格,如1 2 3,它就會起作用。

回答

7

您只需使用:

for translate in myVar: 

相反的:

for translate in myVar.split(): 

遍歷字符串給你的人物一個接一個,這是你所需要的。

如果你想轉換'123''1 2 3'(這裏沒有必要的,因爲你不需要使用split),你可以使用:

' '.join(myVar) 
+0

這將工作,如果myVar的輸入爲「 123' 。如果myVar是123,循環shoud迭代str(myVar)。對? – milancurcic

+0

太簡單了!非常感謝! – Vanq8ish

+2

@ IRO-bot:由於他使用'raw_input','myVar'將始終是一個字符串。如果它是一個整數,那麼你需要'str(myVar)'。 – interjay