【问题标题】:What is the correct way (syntax) of combining boolean operators in python在python中组合布尔运算符的正确方法(语法)是什么
【发布时间】:2014-12-15 21:41:44
【问题描述】:

所以我正在开发一个简单的 python 游戏 (Merels)。这个功能应该让玩家输入他想要移除的敌人标记,但如果他进入了一个无效的位置,他会再次询问他。 “layer”变量代表位置所在的正方形(一块merels就像3个同心正方形),“layer”变量代表层中的位置。不应该有逻辑缺陷。在倒数第三行弹出一条错误消息,上面写着:'TypeError:列表索引必须是整数,而不是 unicode'。

def playerRemove(board, removeLetter):
    print("You have scored a mill! Choose an enemy Token to remove.")
    layer=0
    print("First enter the layer. (1-3)")
    layer=raw_input()
    while layerEmpty(board, layer, removeLetter):
        print("First enter the layer. (1-3)")
        layer=raw_input()

    position=9
    layer=int(layer)
    position=int(position)
    while board[layer][position]!=removeLetter or isMill(board, computerLetter):
        print("Now enter the position. (1-8)")
        position=raw_input()

这个问题我已经遇到过很多次了,但到目前为止的解决方案是使用类似的表达式将变量转换为整数

x=int(x)

但不知何故,这在这里不起作用。

【问题讨论】:

  • 您需要在代码的最后添加一个 position=int(position) 吗?

标签: python unicode integer type-conversion


【解决方案1】:

在循环之前,您正确地执行了position = int(position),因此您成功进入了循环,但随后在循环中,您在以下行请求了一个新的position

position = raw_input()

将其更改为:

position = int(raw_input())

【讨论】:

    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 2016-05-15
    • 2015-03-01
    • 2016-12-16
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多