2016-10-18 13 views
0

文字列内の文字が別の文字列の前に出て出てくるかどうかを調べようとしています。言ってやるがいい。文字列内の文字が別の文字の前に見つかった場合

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") 

私はそれを入力すると、動作するようには思えませんが私は何を取得しようとしているが、「こんにちはがあります前に来る」ヘルプしていただければ幸いです。

スクリプトが上から下に読み込まれるので、Helloが来ることを示す理由は、その事実を利用することに過ぎません。

これが意味をなさない場合は、回答セクションで私に連絡してください。文字列「s」の

答えて

3

s.find(substring)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 

を開始しますsの最低インデックスが起こって、何ていないものをお見せするためにいくつかのコメントにあなたのコードを修正返します。あなたはインデントエラーもありました。

より良いコーディング方法が必要な場合は、パトリックの答えを参照してください。私は、これが何をすべき、あなたのニーズを想定すると、間違った

0

をやってますが、質問の詳細を暗示しているように簡単ですし、何をお見せしたかった -

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) 
関連する問題