私はlegends APIを使用しているボットを持っています。私はちょうど特定のマッチからいくつかの統計を取得したい。コードは動作していましたが、それは長く繰り返しました。私はそれをきれいにしたいと思っていました。現在、コードの主な機能は動作していますが、ボットに入れる前にいくつかのテストを行っています。今はこれがコードです、私はそれを説明します。forループで何かを一度だけ印刷します
for i in range(0, 9):
num += 1
i = r_match['participants'][num]
e_name = i['summonerName']
e_id = i['summonerId']
team_id = i['teamId']
r_team = requests.get("https://lan.api.pvp.net/api/lol/lan/v2.5/league/by-summoner/{}/"
"entry?api_key=".format(e_id)).json()
x = r_team["{}".format(e_id)][0]
e_tier = x['tier']
e_div = x['entries'][0]['division']
if team_id == 100:
print("Blue team")
print(e_name, e_tier, e_div)
elif team_id == 200:
print("Red team")
print(e_name, e_tier, e_div)
だから、このコードの一部は、試合の参加者の名前を取得し、それが自分のIDを取得し、そのIDを持つことは、他のいくつかの統計情報を検索します。 2つのチームがあります。 Jsonの対応では、各チームにIDがあります。 100と200あなたがここに見ることができるように:
if team_id == 100:
print("Blue team")
print(e_name, e_tier, e_div)
elif team_id == 200:
print("Red team")
print(e_name, e_tier, e_div)
条件が満たされたとき、私は何をしたいことは一度だけ印刷「ブルーチーム」と「レッドチーム」です。これはボットが動いているチャットにきれいに印刷できますが、コードを実行するたびに、試合の参加者ごとに「青チーム」または「赤チーム」が印刷されます。
Blue Team
player 1
Blue Team
player 2...
合計で10人のプレイヤーが出現するまで続きます。私がしたいことは:
Blue Team
player1
player2
player3
player4
player5
Red Team
player6
player7
player8
player9
player10
それだけです。助けてくれてありがとう:
上記の回答が仕事をしてくれているかもしれません。これは少し長く見えるので、このようにする利点は何ですか? – Aguxez
私は約4-6行だけを追加しました。これにより、すべての選手がそれぞれのチームIDに追加されます。チーム100と200だけではない場合、これはより柔軟です –