我已经完成了一项简单的任务:
为计算机生成的游戏编写程序 随机起始编号在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')
任何帮助都将非常感激,我只是你可能会告诉我的初学者。
答案 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)
有几个错误:
personremove > 3
读取personremove大于3。您不能在>1
之后添加or
,您必须再次说明哪个变量应与1
相关联。这将有效personremove < 1
如果personremove&lt; 1或personremove&gt; 3:
一般来说,还有更好的方法可以对此进行编码。例如,将此部分放入循环中。