使用'<'时出现意外的语法错误和'>'

时间:2013-04-09 21:00:07

标签: python

我已经完成了一项简单的任务:

为计算机生成的游戏编写程序 随机起始编号在20到30之间。 播放器和计算机可以从号码中删除1,2或3 轮流。像这样...... 起始编号:25 你想删除多少? 3 22离开 电脑删除2 20左 必须删除最后一个值以带来号码的玩家 低至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')

任何帮助都将非常感激,我只是你可能会告诉我的初学者。

5 个答案:

答案 0 :(得分:6)

if personremove=<3 or >1:应该是

if personremove <= 3 or personremove > 1:

答案 1 :(得分:3)

您需要重新排序这些陈述:

if 1 < personremove <= 3:

python的or运算符需要在左侧和右侧都有一个对象或表达式。正如您所写的那样,右侧有另一个运算符,这是非法的。另外,=<不是python运算符。它是<=

答案 2 :(得分:2)

personremove=<3 or >1不是法律表达。使用:

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

这使用了chained comparison operators;它大致意味着:

if personremove < 1 or personremove > 3:

personremove仅评估一次,我们更清楚地知道该数字超出范围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

答案 3 :(得分:0)

你的if声明只需要稍微调整一下。尝试:

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

希望有所帮助

答案 4 :(得分:0)

有几个错误:

  1. 您的说明不一致。 介于 1和3之间的唯一整数是2.但肯定不是你的意思。您的意思是输入1,2或3.
  2. 您的语法大于后退。它应该是personremove > 3读取personremove大于3。
  3. 您不能在>1之后添加or,您必须再次说明哪个变量应与1相关联。这将有效personremove < 1

    如果personremove&lt; 1或personremove&gt; 3:

  4. 一般来说,还有更好的方法可以对此进行编码。例如,将此部分放入循环中。