0

私は簡単なタスクを設定しました:

コンピューターが 20 から 30 の間のランダムな開始番号を生成するゲームのプログラムを作成します。プレーヤーとコンピューターは順番に番号から 1、2、または 3 を削除できます。こんな感じで・・・ 開始番号:25 何個削除しますか?3 22 left コンピュータが 2 20 left を削除 数字を 0 にするために最後の値を削除しなければならないプレーヤーが敗者です。残り 1 コンピューターが 1 を削除します。あなたの勝ちです!

プレーヤーが削除する番号 1、2、または 3 のみを入力できるように作成しようとしています。

if ステートメントが次のような無効な構文の構文エラーが発生します。

import random
import time

start=random.randint(20,30)

print('Starting number is',start)

personremove=int(input('How many do you want to remove? '))

if personremove=<3 or >1:
    print('Enter a number between 1 and 3')
    personremove=int(input('How many do you want to remove? '))


current=start-personremove

print(current,'left')

compremove=random.randint(1,3)

current=start-personremove-compremove

print('Computer removes',compremove)

print(current,'left')

おそらくおわかりのように、私はPythonの初心者にすぎません。

4

5 に答える 5

6

if personremove=<3 or >1:する必要があります

if personremove <= 3 or personremove > 1:
于 2013-04-09T21:01:39.917 に答える
3

これらのステートメントを並べ替える必要があります。

if 1 < personremove <= 3:

Python のor演算子は、左右両方にオブ​​ジェクトまたは式を必要とします。あなたが書いたように、右側に別の演算子がありますが、これは違法です。また、=<python 演算子ではありません。です<=

于 2013-04-09T21:01:41.677 に答える
2

personremove=<3 or >1 は法的な表現ではありません。使用する:

if not (1 <= personremove <= 3):

これは連鎖比較演算子を利用します。おおよそ次と同じ意味です。

if personremove < 1 or personremove > 3:

personremove評価されるのは 1 回だけであり、数値が 1 ~ 3 の範囲外であることをより明確にしました。

代わりにループを使用しwhileて、正しい番号を求め続けることをお勧めします。

personremove = 0
while not (1 <= personremove <= 3):
    print('Enter a number between 1 and 3')
    try:
        personremove = int(input('How many do you want to remove? '))
    except ValueError:
        pass
于 2013-04-09T21:01:41.167 に答える
0

あなたのif声明はほんの少し調整する必要があります。試す:

if 1 <= personremove <= 3:
    ...

それが役立つことを願っています

于 2013-04-09T21:02:21.900 に答える
0

いくつかのエラーがあります:

  1. あなたの指示は矛盾しています。1 と 3の間の唯一の整数は 2 です。しかし、確かにそれはあなたが意図したものではありません。1、2、または 3 のいずれかを入力してください。
  2. 大なり後方の構文があります。personremove > 3personremove が 3 より大きいことを確認してください。
  3. >1の後に単に追加することはできません。or関連する変数を再度指定する必要があります1。これはうまくいきますpersonremove < 1

    personremove < 1 または personremove > 3 の場合:

これを一般的にコーディングするためのより良い方法もあります。たとえば、このセクションをループに入れます。

于 2013-04-09T21:15:34.907 に答える