2017-09-28 12 views
1

Pythonで私のリストの理解を理解することに問題があります。私には3つの条件があり、2つの方法を知っていますが、条件の1つが正しく機能していないようです。条件がPythonで一致するかチェックしてください

私の条件は以下のとおりです。私のリストにあるすべての数字が同じであり、それらはすべて、特定の番号であれば、

  1. 私のリストにあるすべての数字が同じであれば、
  2. ポイントを追加しますが、彼らがやります特定の数字と等しくない場合は、何か他の操作をしてください。
  3. リストの数字が一致しない場合は、他のものよりも特定の数字に等しい場合。

私は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 
+0

これは、すべての数値がROUND_NUMBERではなく最初の数値と等しい場合ですか? – jonrsharpe

+0

ヒント:最初に、 'rolls 'の数字がすべて' rolls [0] 'と同じであることを確認し、それが真であれば' rolls [0] == ROUND_NUMBER'をテストします。 –

+0

提案されているものを使用してください(https://stackoverflow.com/questions/3844801/check-if-all-elements-in-a-list-are-identical)。@ PM2Ringが示唆するように、rolls [0 ]!= ROUND_NUMBER – ShreyasG

答えて

1

このような何かがそこにあなたを取得する必要があります...

rolls = [5,5,5,5,5,5] 

specificNum = 6 

if len(set(rolls)) == 1: 
    if rolls[0] != specificNum: 
     print 'Do something' 
0
#imports 

    import random 

    #variables 

    Roll_1_return = False 
    Roll_2_return = False 
    round_score = ROUND_TOTAL 

    #assuming you only want to roll twice 

    def Rolls(): 
     Roll_1 = random.randrange(1, 10) 
     Roll_2 = random.randrange(1, 10) 
     While True: 
      if Roll_1 == 3: 
       Roll_1_return = True 
       return Roll_1_return 
       break 
      else: 
       break 
     While True: 
      if Roll_2 == 7: 
       Roll_2_return = True 
       return Roll_2_return 
       break 
      else: 
       break 

    Rolls() 

    if Roll_1_return == True: 
     print('Roll 1 is correct!') 
     round_score + 25 
    else: 
     print('Roll 1 is incorrect..') 

    if Roll_2_return == True: 
     print('Roll 2 is correct!') 
     round_score + 25 
    else: 
     print('Roll 2 is incorrect..') 

    if round_score == 50: 
     print('You won $100!') 
    elif round_score == 25: 
     print('You won $50!') 
    else: 
     print('Too bad, you lost!') 

私が正しく理解していれば、これは与えるべきですあなたは何が必要です!これがあなたが望むものでないなら、plzは私を倒してはいけません!私は理解するのが大変でした。

関連する問題