我想知道我如何分配这个字符串以用于我分配的游戏。玩家应该为60x15网格输入x和y值。
answer = input('enter an x and y coordinate with a space between')
生病使我的x等于30而我的y等于7
playerAnswer = []
answer = '30 7'
answer.split(' ')
playerAnswer.append((player[0], player[1]))
当我这样做时,我playerAnswer
为['3', '0']
有没有办法让playerAnswer
成为['30', '0']
?
答案 0 :(得分:1)
问题是您没有使用split
的返回值。 str.split
不会修改字符串(字符串实际上是不可变的),但返回列表。
演示:
>>> answer = '30 7'
>>> answer_split = answer.split(' ')
>>> answer
'30 7'
>>> answer_split
['30', '7']
>>> answer_split[0]
'30'
>>> answer_split[1]
'7'
如果你想要实际的整数,你可以这样做:
>>> answer_split = [int(x) for x in answer.split(' ')]
>>> answer_split
[30, 7]
我不确定为什么在追加player
时索引split
而不是playerAnswer
的结果,这可能是另一个错误。
注意:如果您只想按任何空格拆分,可以省略' '
到split
的参数。
答案 1 :(得分:0)
a, b = [int(i) for i in answer.split()]
>>> a
30
>>> b
7
或者,如果你真的想要文字:
playerAnswer = []
playerAnswer.append(tuple(i for i in answer.split()))
>>> playerAnswer
[('30', '9')]
答案 2 :(得分:0)
实现这一目标的大多数pythonic方法是:
>>> x, y = map(int, input('enter an x and y coordinate with a space between').split())
>>> x
30
>>> y
7
现在您的代码出现了问题:
playerAnswer.append((player[0], player[1]))
将player
替换为answer
因为您将分割的值存储在answer
变量中(我在您提到的代码中也看不到任何player
变量,所以我我不知道它存储的是什么。但我相信你不需要它。下面的行应该可以正常工作。
playerAnswer.append((answer[0], answer[1]))
此外,我认为您不需要30
和7
作为str
。要将其转换为int
,我使用map()
函数。