2017-06-01 35 views
1

我希望做一些功能上等同於這樣:Python的 - 多行用的raw_input或.format%s的

my_dict = {'option1': 'VALUE1', 'option2': 'VALUE2'} 
def my_func(): 
    menu_option = raw_input(
     "Which option would you like to configure [0]?\n" 
     "[0] NO CHANGES\n" 
     "[1] Option1: \t{0}\n".format(my_dict.get('option1')) 
     "[2] Option2: \t{0}\n".format(my_dict.get('option2')) 
    ) or "0" 

OR

my_dict = {'option1': 'VALUE1', 'option2': 'VALUE2'} 
def my_func(): 
    menu_option = raw_input(
     "Which option would you like to configure [0]?\n" 
     "[0] NO CHANGES\n" 
     "[1] Option1: \t %s \n" % my_dict.get('option1') 
     "[2] Option2: \t %s \n" % my_dict.get('option2') 
    ) or "0" 

當運行my_func,並將()的結果看起來像這:

Which option would you like to configure [0]? 
[0] NO CHANGES 
[1] Option1:  VALUE1 
[2] Option2:  VALUE2 

我得到一個無效的語法錯誤。有沒有辦法做到這一點?

回答

1

您正在使用多行字符串,而它與format呼叫相結合;使用一個多行字符串用單一的格式

menu_option = raw_input(""" 
    Which option would you like to configure [0]? 
    [0] NO CHANGES 
    [1] Option1: \t{0} 
    [2] Option2: \t{1} 
    """.format(my_dict.get('option1'), my_dict.get('option2')) 
) or "0" 

或添加並置運算符

menu_option = raw_input(
    "Which option would you like to configure [0]?\n" + \ 
    "[0] NO CHANGES\n" + \ 
    "[1] Option1: \t{0}\n".format(my_dict.get('option1') + \ 
    "[2] Option2: \t{0}\n".format(my_dict.get('option2') 
) or "0" 
+0

唉該第二個選擇是難看。 – enderland

+0

@enderland準確地說,我通常會首先進行漂亮的圖形打印,而第二次進行可讀性和維護時,如果格式化的參數更詳細,則爲 – Uriel

+0

。謝謝你,先生! – Dan

0

多行註釋是書面"""

my_dict = {'option1': 'VALUE1', 'option2': 'VALUE2'} 
def my_func(): 
    menu_option = raw_input(
     """Which option would you like to configure [0]? 
     [0] NO CHANGES 
     [1] Option1: \t{0} 
     [2] Option2: \t{1}\n""".format(my_dict.get('option1'), my_dict.get('option2')) 
    ) or "0"