Pythonで私のリストの理解を理解することに問題があります。私には3つの条件があり、2つの方法を知っていますが、条件の1つが正しく機能していないようです。条件がPythonで一致するかチェックしてください
私の条件は以下のとおりです。私のリストにあるすべての数字が同じであり、それらはすべて、特定の番号であれば、
- 私のリストにあるすべての数字が同じであれば、
- ポイントを追加しますが、彼らがやります特定の数字と等しくない場合は、何か他の操作をしてください。
- リストの数字が一致しない場合は、他のものよりも特定の数字に等しい場合。
私は1つの作業をしていますが、私は3番の方法を知っていますが、2番は正しく動作しません。私が自分のリスト(ロール)に入れた数字に関係なく、この条件は真と一致します。誰かが助けてくれますか?ここに私の現在のコードは次のとおりです。
def check_conditions(rolls, round_number):
"""
Check if number on rolled die matches one of three conditions
:param rolls:
:param round_number:
:return round:
"""
round_score = ROUND_TOTAL
rolls = str(rolls)
bunco = all(roll == ROUND_NUMBER for roll in rolls)
mini_bunco = all(roll == roll[0] and roll != ROUND_NUMBER for roll in rolls)
if bunco == True:
print("BUNCO!")
round_score += 20
elif mini_bunco == True:
print("MINI-BUNCO!")
round_score += 5
else:
pass
return round_score
OUTPUT:
Starting Round Number 1
You rolled: [2, 3, 3]
MINI-BUNCO!
Points this round: 5
これは、すべての数値がROUND_NUMBERではなく最初の数値と等しい場合ですか? – jonrsharpe
ヒント:最初に、 'rolls 'の数字がすべて' rolls [0] 'と同じであることを確認し、それが真であれば' rolls [0] == ROUND_NUMBER'をテストします。 –
提案されているものを使用してください(https://stackoverflow.com/questions/3844801/check-if-all-elements-in-a-list-are-identical)。@ PM2Ringが示唆するように、rolls [0 ]!= ROUND_NUMBER – ShreyasG