2016-10-18 6 views
0

gefunden wird, versuche ich herauszufinden, ob ein Zeichen in einer Zeichenfolge vor einer anderen Zeichenfolge zu erhalten und auszugeben. Sprich:Wenn ein Zeichen in der Zeichenfolge vor einem anderen Zeichen

v="Hello There" 
x=v[0] 

if "Hello" in x: 
    print("V consists of '"'Hello'"'") 
     if "There" in x: 
      print("Hello comes before There) 

if "There" in x: 
    print("V consists of '"'There'"'") 
     if "Hello" in x: 
      print("There comes before Hello") 

Was ich versuche zu bekommen, ist: „Hallo, bevor es kommt“, wenn es nicht zu funktionieren scheint, wenn ich es in Typen sehr geschätzte Hilfe würde..

Der Grund, warum die Ausgabe anzeigen würde, dass Hello kommt, bevor es gibt, weil das Skript von oben nach unten gelesen wird, und dies ist nur ein Exploit dieser Tatsache.

Wenn irgendetwas davon keinen Sinn macht, wenden Sie sich bitte an mich im Antwortbereich.

Antwort

3

Für String 's', s.find(substring) der niedrigste Index von s zurückgibt, die mit einigen Kommentaren substring

if s.find('There') < s.find('Hello'): 
    print('There comes before Hello') 
0
v="Hello There".split()     #splitting the sentence into a list of words ['Hello', 'There'], notice the order stays the same which is important 
              #got rid of your x = v[0] since it was pointless 
if "Hello" in v[0]:      #v[0] == 'Hello' so this passes 
    print("V consists of '"'Hello'"'") 
    if "There" in v[1]:     #v[1] == 'There' so this passes. This line had indentation errors 
     print("Hello comes before There") # This line had indentation errors 

if "There" in v[0]:      #v[0] == 'Hello' so this fails 
    print("V consists of '"'There'"'") 
    if "Hello" in v[1]:     #v[1] == 'There' so this fails. This line had indentation errors 
     print("There comes before Hello") # This line had indentation errors 

Fest Code beginnt, Ihnen zu zeigen, was passiert ist und was nicht. Sie hatten auch Einrückungsfehler.

Wenn Sie eine bessere Kodierungspraxis wünschen, sehen Sie Patrick's Antwort. Ich wollte nur, um Ihnen zeigen, was Sie falsch

0

Ihre Bedürfnisse zu tun sind Unter der Annahme, so einfach, wie Sie in der Frage Details implizierten haben, dann dies tun sollte -

v = "Hello There" 

# Change s1 and s2 as you please depending on your actual need. 
s1 = "Hello" 
s2 = "There" 

if s1 in v and s2 in v: 
    # Refer - https://docs.python.org/2/library/string.html#string.find 
    if v.find(s1) < v.find(s2): 
     print(s1 + " comes before " + s2) 
    else: 
     print(s2 + " comes before " + s1) 
Verwandte Themen