2017-06-01 7 views
1
.format ou% s

je veux faire quelque chose fonctionnellement équivalent à ceci:Python - plusieurs lignes raw_input avec

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" 

OU

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" 

Lorsque le résultat de my_func() en cours d'exécution ressemble ceci:

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

Je reçois une erreur de syntaxe non valide. Y a-t-il un moyen de faire cela? sont écrits

Répondre

1

Vous utilisez la chaîne multiligne tout en combinant avec format appels; utiliser une chaîne multiligne avec le format simple

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" 

ou ajouter des opérateurs de concaténation

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

Ugh cette seconde option est laid. – enderland

+0

@enderland J'utiliserais généralement le premier pour une bonne impression graphique, et le second pour la lisibilité et la maintenance lorsque les arguments formatés sont plus verbeux – Uriel

+0

Précisément. Merci Monsieur! – Dan

0

commentaires multilignes avec """:

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"