0

だから私は単純なループプログラムを作りたいのですが、問題があります:

def Lottery():
    Cash = 200
    YourNumber = randint(1, 10)
    while YourNumber != WinningNumber:
        Cash = Cash - 10
        if Cash < 0:
            print("You are out of money!")
            break
        YourNumber = randint(1, 10)
    else:
        Cash = Cash + 100
        Lottery()

問題は、def の最後の行で、ループを再起動すると「キャッシュ」が自動的に 200 にリセットされることです。これには本当に簡単な解決策があるかもしれませんが、私はグーグルで試してみましたが、結果はありませんでした。

4

2 に答える 2

2

同じこと (無限ループですが、再帰呼び出しなしでお金がなくなると壊れます)、

def Lottery():
    Cash = 200
    YourNumber = randint(1,10)
    while 1:
        if YourNumber != WinningNumber:
            Cash = Cash - 10
            if Cash <= 0:
                print("You are out of money!")
                break

            YourNumber = randint(1,10)
        else:
            Cash = Cash + 100
于 2012-07-25T22:32:51.703 に答える
1

Cashデフォルト値を設定して、引数として渡します。

def Lottery(Cash = 200):
    YourNumber = randint(1,10)
    while YourNumber != WinningNumber:
        Cash = Cash - 10
        if Cash < 0:
            print("You are out of money!")
            break

        YourNumber = randint(1,10)
    else:
        Cash = Cash + 100
        Lottery(Cash)

コードのヒント:加算/減算と割り当てのショートカットとして、およびその他のいくつかの変更を+=使用できます。-=

def lottery(cash = 200):
    while randint(1, 10) != WinningNumber:
        cash -= 10

        if cash <= 0:
            print("You are out of money!")
            break
    else:
        lottery(cash + 100)
于 2012-07-25T22:28:24.617 に答える