2016-09-19 2 views
0

Python 3.5String Indizierung

Hier ist mein Code:

str1 = input("Please enter a full sentence: ").lower() 
print("Thank you, You entered:" , str1) 

str2 = input("Now please enter a word included in your sentence in anyway you like: ").lower() 

if str2 in str1: 
    print("That word was found!") 
else: 
    print("Sorry, that word was not found") 

Wie es ist, wird es für das eingegebene Wort (STR2) suchen und, wenn es in dem Eingang (str1 (einen Satz gefunden)) es wird sagen "das Wort wurde gefunden"). Wenn das Wort nicht in dem Satz ist, wird es sagen "das Wort wurde nicht gefunden".

Ich möchte dies so zu entwickeln, wenn das Wort gesucht und gefunden wird, teilt es dem Benutzer die Indexposition des Wortes (str2) im Satz (str1). Also zum Beispiel: Wenn ich den Satz habe ("Ich möchte in Python programmieren") und nach dem Wort ("Code") suche, sollte das Programm sagen "Dieses Wort wurde in der Indexposition: 4 gefunden".

Übrigens, der Code ist nicht Groß-und Kleinschreibung, da es konvertiert alle Wörter in Kleinbuchstaben mit .Lower.

Wenn mir jemand dazu einen Rat geben könnte, dann wäre das sehr willkommen!

+0

Verwenden Sie Python 2.7 oder Python 3? – PrestonM

Antwort

1

könnten Sie ersetzen Ihre if ... else durch das:

try: 
    print("That word was found at index %i!"% (str1.split().index(str2) + 1)) 
except ValueError: 
    print("Sorry, that word was not found") 
+0

Danke, das hat für mich funktioniert. Nett und einfach mit wenig Änderung zum ursprünglichen Code, die Art von Sache, die ich wollte. Prost! :) –

+0

Gern geschehen. ;-) – trincot

0
print("That word was found at index %i!"% (str1.split().index(str2))) 

Dies wird den Index des ersten Auftretens von str2 in str1 drucken.
Der vollständige Code ist:

str1 = input("Please enter a full sentence: ").lower() 
print("Thank you, You entered:" , str1) 

str2 = input("Now please enter a word included in your sentence in anyway you like: ").lower() 

if str2 in str1: 
    print("That word was found!") 
    print("that word was found in index position: %i!"% (str1.split().index(str2))) 

, str1.index (STR2))
anderes: print ("Sorry, das Wort nicht gefunden wurde")

+1

Nicht genau. 'str1.split(). index (str2)' –

+0

yep, ungültige Syntax –

+0

Hmmm .... Ich bekomme keine Syntaxfehler .... Haben Sie Ihre Eingabe in Anführungszeichen gesetzt? – PrestonM

0
str2 = 'abcdefghijklmnopqrstuvwxyz' 
str1 = 'z' 
index = str2.find(str1) 
if index != -1: 
    print 'That word was found in index position:',index 
else: 
    print 'That word was not found' 

Dies ist die gedruckt werden Index des str1 in str2

+0

Ich würde nicht eine Variable 'str' nennen, und Sie können' von String Import ascii_lowercase', um das Alphabet zu bekommen –

+0

Sie haben Recht, aber er ist eindeutig neu zu Python und ich möchte ihn nicht mit diesem Import zu verwechseln . –

+0

Danke, das hat bei mir funktioniert. Aber aus irgendeinem Grund gibt es mir nicht die richtige Indexnummer. Wenn ich zum Beispiel "Ich möchte in Python kodieren" für str1 geben würde, und dann nach "Code" suche, sagt es mir, dass es in Indexposition 10 ist? Gibt es eine Möglichkeit, das zu beheben? –

0

Sie können eine split() -Methode verwenden: Sie ruft einen String auf und gibt eine Liste mit Strings zurück. Dann verwenden Sie die index() -Methode, um den Index der Zeichenfolge zu finden.

str1 = input("Please enter a full sentence: ").lower() 
print("Thank you, You entered:" , str1) 
str2 = input("Now please enter a word included in your sentence in anyway you like: ").lower() 

if str2 in str1: 
    a = str1.split() # you create a list 
    # printing the word and index a.index(str2) 
    print('The ', str2,' was find a the index ', a.index(str2)) 
    print("That word was found!") 
else: 
    print("Sorry, that word was not found")