J'ai du mal à trouver ma compréhension de la liste en python. J'ai 3 conditions que je cherche, et je sais comment faire deux d'entre eux, mais l'une des conditions ne semble pas fonctionner correctement.Vérifiez si la condition correspond à python
Mes conditions sont les suivantes:
- Si tous les numéros dans ma liste sont les mêmes et ils sont tous un nombre précis, puis ajouter des points
- Si tous les numéros dans ma liste sont les mêmes, mais ils le font pas égal à un nombre spécifique puis faire autre chose
- Si les nombres dans la liste ne correspondent pas, mais ils égalent un nombre spécifique que faire quelque chose d'autre.
J'ai 1 travail, et je sais comment faire le numéro 3, mais je ne peux pas obtenir le numéro 2 fonctionne correctement. Peu importe les numéros que j'ai mis dans ma liste (rouleaux), cette condition correspond toujours à True. Quelqu'un peut-il aider s'il vous plaît? Voici mon code actuel:
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
SORTIE:
Starting Round Number 1
You rolled: [2, 3, 3]
MINI-BUNCO!
Points this round: 5
Donc ce serait si tous les nombres sont égaux au premier nombre, mais pas ROUND_NUMBER? – jonrsharpe
Indice: vérifiez d'abord que tous les nombres de 'rolls' sont identiques à' rolls [0] ', et si c'est vrai, alors testez' rolls [0] == ROUND_NUMBER'. –
Utilisez ce qui est suggéré [ici] (https://stackoverflow.com/questions/3844801/check-if-all-elements-in-a-list-are-identical), puis, comme @ PM2Ring suggéré, vérifiez si les rouleaux [0 ]! = ROUND_NUMBER – ShreyasG