web-dev-qa-db-ja.com

Pythonでwhileループを抜け出すには?

Compクラス用にこのゲームを作成する必要がありますが、このループから抜け出す方法がわかりません。参照してください、私は「コンピューター」に対して、より大きな数字を出し、誰がより大きなスコアを持っているかを見なければなりません。しかし、自分の番からどのように「破る」か、コンピューターの番に移行する方法がわかりません。コンピューターの回転の開始を知らせるために「Q」(終了)が必要ですが、その方法はわかりません。

ans=(R)
while True:
    print('Your score is so far '+str(myScore)+'.')
    print("Would you like to roll or quit?")
    ans=input("Roll...")
    if ans=='R':
        R=random.randint(1, 8)
        print("You rolled a "+str(R)+".")
        myScore=R+myScore
    if ans=='Q':
        print("Now I'll see if I can break your score...")
        break
23
Ninja

いくつかの変更は、Rまたはrのみがロールされることを意味します。他のキャラクターは終了します

import random

while True:
    print('Your score so far is {}.'.format(myScore))
    print("Would you like to roll or quit?")
    ans = input("Roll...")
    if ans.lower() == 'r':
        R = np.random.randint(1, 8)
        print("You rolled a {}.".format(R))
        myScore = R + myScore
    else:
        print("Now I'll see if I can break your score...")
        break
13
John La Rooy

私がすることは、ANSがQになるまでループを実行することです

ans=(R)
while not ans=='Q':
    print('Your score is so far '+str(myScore)+'.')
    print("Would you like to roll or quit?")
    ans=input("Roll...")
    if ans=='R':
        R=random.randint(1, 8)
        print("You rolled a "+str(R)+".")
        myScore=R+myScore
7
Phil
ans=(R)
while True:
    print('Your score is so far '+str(myScore)+'.')
    print("Would you like to roll or quit?")
    ans=input("Roll...")
    if ans=='R':
        R=random.randint(1, 8)
        print("You rolled a "+str(R)+".")
        myScore=R+myScore
    else:
        print("Now I'll see if I can break your score...")
        ans = False
        break
4
aug2uag

Whileおよびbreakステートメントを使用しないでください。それは悪いプログラミングです。

他の人のコードをデバッグし、1行目にしばらくTrueが表示され、15のbreakステートメントを含む別の200行のコードを探し回る必要があると想像してください。実際にそれが休憩に至る原因。あなたは彼らを殺したい...たくさん。

Whileループの繰り返しを停止させる条件は、コードのwhileループ行から常に明確であり、他の場所を探す必要はありません。

Philにはwhileループステートメント自体に明確な終了条件があるため、「正しい」ソリューションがあります。

1
Steve Todd