Je soulève des exceptions dans deux endroits différents dans mon code Python:Pourquoi la concaténation fonctionne-t-elle différemment dans ces deux échantillons?
holeCards = input("Select a hand to play: ")
try:
if len(holeCards) != 4:
raise ValueError(holeCards + ' does not represent a valid hand.')
ET (sous la direction de corriger le code augmentation)
def __init__(self, card):
[...]
if self.cardFace == -1 or self.cardSuit == -1:
raise ValueError(card, 'is not a known card.')
Pour une raison quelconque, les premières sorties d'une chaîne concaténée comme Je m'attendais:
ERROR: Amsterdam does not represent a valid hand.
Mais, le second produit un étrange hybride d'ensemble et de s tring:
ERROR: ('Kr', 'is not a known card.')
Pourquoi l'opérateur "+" se comporte-t-il différemment dans ces deux cas?
Edit: L'appel à init ressemble à ceci:
card1 = PokerCard(cardsStr[0:2])
card2 = PokerCard(cardsStr[2:4])
Montrez-nous votre appel à init. – paxdiablo
J'ai du mal à voir comment la deuxième erreur pourrait survenir. Je ne peux pas le reproduire. Es-tu sûr que ça vient du deuxième bloc de code? Pourriez-vous également poster le code qui intercepte les exceptions? –
len ('Kr') == 2 n'échouerait pas le test. – codelogic