0

Pythonでコイントス/ダイスロールをしたいのですが、ifステートメント内で変数を定義/変更する方法がわかりません。

import random
def roll(number):
    if(number==1):
        {print("Take a moment to think that through")}
    if(number==2):
        {b=random.randint(0,1)
        if(b=0):
            {ba=1}
        else:
            {bb=1}
        }

その部分{b=random.randint(0,1)}=赤色で強調表示され、構文エラーとしてマークされます。私もこれを試しました:

import random
b=0
def roll(number):
    if(number==1):
        {print("Take a moment to think that through")}
    if(number==2):
        {b+=random.randint(0,1)
        if(b=0):
            {ba=1}
        else:
            {bb=1}
        }

同じエラーが発生し、+ ではなく = が強調表示されます

質問する前に、関数 roll(number) がシェルで呼び出されます。シェルは私のインターフェースです。

4

2 に答える 2

3
import random
def roll(number):
    if number==1:
        print("Take a moment to think that through")
    if number==2:
        b=random.randint(0,1)
        if b==0:
            ba=1
        else:
            bb=1

Python は中かっこを使用しません。コードを次のように記述する必要があります。また、関数で何かを返す必要があります。これは、関数/変数を別のメソッドで使用する方法です。

import random
def roll(number):
    if number==1:
        my_string="Take a moment to think that through"
        return my_string
    if number==2:
        b=random.randint(0,1)
        if b==0:
            ba=1
        else:
            bb=1
        return ba,bb

このようなもの、私はあなたのコード全体を知らないので。

于 2015-01-03T23:46:21.773 に答える
-1

また、roll(15) など、誰かが入力した場合にどうするかについても考える必要があります。

import random
def roll(number):
    if number==1:
        print("Take a moment to think that through")
    elif number==2:
        b=random.randint(0,1)
        if b==0:
            ba=1
        else:
            bb=1
    else:
        print("What should happen in this case?") 

また、@grrr:if b==0

于 2015-01-03T23:52:14.667 に答える