2016-05-16 7 views
0

Ich versuche, einen Druck des Verbs in Englisch von Python istFormatierung in Python aufrufen zu konjugieren Verben

Mein Code konjugiert sein zu bekommen:

verbFormat = ["I","you","he","she","we","they","yee",] 
verbConjBePresent = [{0} + "am", {1} "are", {2} "is", {3} "is", {4} "are", {5} "are", {6} "are",] 
print(verbConjBePresent.format(verbFormat)) 

Ich habe versucht, das Hinzufügen {x} + "str" ​​in der vCBP und versucht ohne.

Ich habe versucht, Tupel anstelle von Listen mit

EDIT: Der Grund, warum ich die Liste „verbFormat“ verwenden möchten, so muss ich diese Worte nicht jedes Mal, wenn ich Verb ändern (und es erneut zu durchlaufen sollte die meisten Zeiten für die meisten Verben abdecken)

EDIT 2: Im Interesse von jedermann, der dieses Thema in der Zukunft sucht, möchte ich den Code dem Punkt hinzufügen, in der Lage zu sein, eine Konjugation mit einem var [x]

auszuwählen
verbFormat = ["I","you","he","she","we","they","yee",] 
verbConjBePresent = "{} am; {} are; {} is; {} is; {} are; {} are; {} are" 
verbBePresent =(verbConjBePresent.format(*verbFormat).split(';')) 
print(verbBePresent[0]) 
+0

Was ist das Problem, das Sie haben? – kindall

+0

Ich möchte die n-te Iteration eines Verbs aufrufen können, in diesem Fall "sein", um zu einem späteren Zeitpunkt Sätze bilden zu können. Ich plane ein paar Verben (vielleicht die häufigsten 100? In allen Zeiten) – GazEcc

Antwort

0

Ihre String-Formatierung falsch ist. Sie versuchen, eine list zu formatieren.

verbFormat = ["I","you","he","she","we","they","yee"] 
verbConjBePresent = "{0} am;{1} are;{2} is;{3} is;{4} are;{5} are;{6} are" 
print(verbConjBePresent.format(verbFormat).split(';')) 

Mit der split(';') Sie eine Liste mit Konjugationen gedruckt wird. Wenn Sie alle zusammen in einer Zeichenfolge möchten, entfernen Sie einfach split.

+1

Das ist eine großartige Antwort, der Split ist ein sehr interessanter Befehl, von dem ich nichts wusste. Vielen Dank für Ihre Eingabe, da dies den ganzen Job erleichtert :) – GazEcc

0

Verwenden Sie einfach eine Zeichenfolge und entpacken Sie die Liste mit str.format:

verbFormat = ["I","you","he","she","we","they","yee",] 
verbConjBePresent = "{} am, {} are, {} is, {} is, {} are, {} are, {} are." 
print(verbConjBePresent.format(*verbFormat)) 

die Ihnen:

I am, you are, he is, she is, we are, they are, yee are. 

str.format Werke auf Strings keine Listen.

+1

Danke. Das hat Spaß gemacht! – GazEcc

+1

Keine Sorge, Sie müssen nur die Nummerierung mit str.format für Python verwenden <2.7 –

0

Ist dies die Zeichenfolge, die Sie ausgeben möchten?

'I am, you are, he is, she is, we are, they are, yee are' 

Hier ist der Code, es zu machen:

verbConjBePresent = '{0} am, {1} are, {2} is, {3} is, {4} are, {5} are, {6} are' 
print(verbConjBePresent.format(*verbFormat)) 
+0

Ja, es ist, und ich danke Ihnen für Ihre Eingabe. – GazEcc