2016-10-23 6 views
-1

こんにちは私の質問は、2つのパラメータが1つのツイートと1つのハッシュタグを持つ関数を必要とすることです。つぶやきで、そうでなければfalseです。文字列を通過し、2番目のパラメータが含まれているかどうかを確認

例:真

contains_hashtags('I like bats #batman', 'batman')結果はFalseで

contains_hashtags('I like bats #batman', 'bat')結果#batmanとしてその同じではありませんので。

これまでのところ、私は

def contains_hashtags(tweet, hashtag): 
tweet.split(" ") 
for char in tweet: 
    if tweet.startswith(hashtag): 
     return True 
    else: 
     return False 

を持っている私は、それぞれの文字を通過まずつぶやきを分割しようと、それは文字列の配列を返しますsplitハッシュタグ

答えて

2

をSTARTSWITHかどうかを確認します。文字列はは変更不可能です。つまり、処理された値(配列)を再割り当てする必要があります。自動的には更新されず、変数が置き換えられます。

分割された配列の各単語が、#で始まり、hashtagが含まれている場合は、その単語を確認します。また

、すべてのケースがテストされ、間違って証明された後、あなたがだけそれを置くことができるようにreturn Falseは、何のハッシュタグが見つからなかった場合にのみ来ることに注意してください:

def contains_hashtags(tweet, hashtag): 
    tweet = tweet.split() # ' ' by default 
    for word in tweet: 
     if word.startswith('#') and hashtag in word: 
      return True 
    return False 
+0

私はそれが "と言うことを試みた後list 'オブジェクトには属性' startswith 'がありませんので、tweet = tweet.split()を変更した後でも、そのエラーが発生したため、tweet.startswithの属性を変更する必要があるのですか(tweet.startswith)? – naruto321

+0

あなたのコードはバグです - –

+0

@ naruto321を今すぐチェック – Uriel

関連する問題