2017-11-08 17 views
0

によって実行関数の戻り値を取得するので、私は私の好きなスポーツチームは、その日に果たしているかどうかをチェックし機能があります:私は、初心者のプログラマーだスケジュール

def checkGameDay(): 

today = str(datetime.date.today()) 
yyyymmdd = today.replace('-', '') 
#yyyymmdd = '20171104' #test date that toronto played on (lost 6-4 to stL) 
url = 'http://scores.nbcsports.msnbc.com/ticker/data/gamesMSNBC.js.asp?sport=%s&period=%s' 
r = requests.get(url % ('NHL', yyyymmdd)) 
json_parsed = r.json() 
check = 0 

for game_str in json_parsed.get('games', []): 
    game_tree = ElementTree.XML(game_str) 
    away_tree = game_tree.find('visiting-team') 
    home_tree = game_tree.find('home-team') 
    gamestate_tree = game_tree.find('gamestate') 
    home_nickname = home_tree.get('nickname') 
    away_nickname = away_tree.get('nickname') 
    home_alias = home_tree.get('alias') 
    away_alias = away_tree.get('alias') 
    away_score = away_tree.get('score') 
    home_score = home_tree.get('score') 
    x = 0; 
    gamesToday = len(json_parsed.get('games', [])) 

    if away_alias == 'Tor' or home_alias == 'Tor': 
     checkGoal() 
     print "Toronto is playing today" 
     return True   

    else: 
     check = check + 1 

    if check == gamesToday: 
     print "Toronto does not play today" 
     return False 

はので、任意の「グッドプラクティス」を無視してください私が行方不明になっている「より効率的な方法」があります。

トロントがその日にプレイする場合、Trueが返され、そうでない場合はFalseが返されます。私はこの値を返すことが望ましいので、私はスケジュールされたイベントの復帰方法を理解することはできませんが、コードの後の結果を使用することができます。

私はこのコードを使用してスケジュールを設定:

schedule.every().day.at("18:00").run(checkGameDay) 

while True: 
    schedule.run_pending() 
    time.sleep(1) 

私はプリントが完全に正常に動作しているためリターンがトリガされる必要があります知っています!

この戻り値をとる変数をどのように作成できますか?本当にありがとう!関数から値を返さないでください

bool_value = False 

def test_function(): 
    global bool_value 
    #bool_value = False 

    for i in range(10): 
     if i%2 == 1: 
      bool_value = True 
     else: 
      bool_value = False 

    #return bool_value 

storedVariable = bool_value 

:私は

+0

あなたのコードの問題は、大文字小文字ではないはずのループで値を返すことです。ループの外側にある変数を定義してみてください。ループの繰り返しごとに更新され、その変数を他の関数に戻して格納することができます。 –

答えて

0

はこのような何かを試してみてください...この上でとてもこだわっています。変数をグローバルに定義し、後で使用できるように更新します。

これが役に立ちます。

+0

こんにちはBhushan、私は使用するようにしようとしているスケジューラのためにあなたの最後の行を使用することはできませんが、変数がループの外で定義されているように私の関数を変更した、私は関数の戻り値を取得する必要がその時には、 'bool_value = schedule.every()。day.at(" 18:00 ")のようなものを試してもうまくいかないようです。 –

+0

スケジューラを実行するときの理解のために、1つ以上の値を返すことができますか? –

+0

私は自分の答えを更新しました。チェックしてください。 –

関連する問題