2016-05-10 8 views
0
sentence='ASK NOT WHAT YOUR COUNTRY CAN DO FOR YOU ASK WHAT YOU CAN DO FOR YOUR COUNTRY' 
word=[] 
pos=0 
choice='' 
while choice!='q': 
    print(sentence) 
    word=sentence.split(' ') 
    choice=input('what word do you want to find').upper() 
    for pos in range(len(word)): 
     if choice==word[pos]: 
      print('The word ' + str(choice)+ ' occurs in the ' + str(pos +1) + ' th position ') 
    if choice not in word: 
     print("not valid word") 

So hinzufügen, ich diesen Code erhalten haben, die die Worte Standort in meinem Array druckt aber können sagen, dass das Wort in der Nullstellung ist zB Fragen will ich es bis kommen mit dem Wort ASK tritt in der 1. Stelle statt des Wortes ASK tritt in der th-Position auf, und so weiter zB nd, rd und th. Jede Hilfe wäre willkommen!wie Anzahl Suffixe an die Worte in meinem Array

+0

Was Wörter wiederholen? –

+0

ja so würde es sagen, das Wort ask tritt in der 1. Position und der 10. Position – joe

+0

Verwenden Sie ein dict und speichern Sie die Indizes für jedes Wort in Listen als Werte dann nur eine Suche im dict –

Antwort

-1

Sie könnten eine Funktion so etwas wie folgt verwenden:

def ordinal(n): 
    if n == 1: 
     return "first" 
    elif n == 2: 
     return "second" 
    elif n == 3: 
     return "third" 
    else: 
     return str(n)+"th" 

es in den Code eingebaut als eine Übung gelassen :-)

+0

Danke dafür hat es wirklich geholfen – joe

+0

Wie würde ich es dann in meiner Zeichenfolge drucken? – joe

0

Sie die humanize Paket verwenden können, spezifisch die Funktion humanize.number.ordinal() genau funktioniert was Sie wollen:

>>> from humanize import number 
>>> for i in range(30): 
...  print(number.ordinal(i)) 
1st 
2nd 
3rd 
4th 
5th 
6th 
7th 
8th 
9th 
10th 
11th 
12th 
13th 
14th 
15th 
16th 
17th 
18th 
19th 
20th 
21st 
22nd 
23rd 
24th 
25th 
26th 
27th 
28th 
29th 

Für Ihren Code Sie die print() dazu ändern könnte:

print('The word ' + str(choice)+ ' occurs in the ' + number.ordinal(pos+1) + ' position ') 

Oder besser, verwenden str.format():

print('The word {} occurs in the {} position'.format(choice, number.ordinal(pos+1))) 
Verwandte Themen