-1

我在分配作业时遇到问题,我需要向用户询问一个号码和位置,然后将该号码存储到列表中的特定位置。我的 python 技能非常基础,但任何帮助将不胜感激。

问题:

两名玩家轮流将 0 到 9 范围内的数字插入到数组中的任何空白位置。每个玩家可以选择任何剩余的号码,但每个号码只能使用一次。

应该发生的事情的例子:

玩家1:你是几号?7

要输入的位置?9

位置:1 2 3 4 5 6 7 8 9 10

     | | | | | | | | |7| |

我失败的尝试:

data = []

x = raw_input('integer: ')

for i in range(10):

    data.insert(9, x)


print(data)
4

4 回答 4

2

raw_input()在 python 中返回一个字符串而不是一个整数。要将其转换为整数,您需要执行x = int(raw_input('integer: ')).

然后您的插入函数应该可以正常工作,但请注意您只是将相同的整数添加到每个插槽中。

首先制作一个空值列表:

data = [' ']*10

然后就做data[9-1] = str(x)。不需要list.insert:),也不需要任何循环。

请记住,索引从 0 开始,因此您所说的第 9 位 python 认为是第 8 位。

于 2013-11-06T00:04:21.793 回答
1
data = [None]*10
data[9] = x 

应该工作你需要给它足够的插槽

你的代码的问题就在这里

for i in range(10):

    data.insert(9, x)

您正在位置 9 插入一个新项目...但是您的数组是空的,因此没有位置 9 可以插入

于 2013-11-06T00:03:57.263 回答
0

我的成功尝试:

data = ['']*10

x = raw_input('integer: ')
position_to_be_entered=9
data[position_to_be_entered-1]=int(x)


print data
于 2013-11-06T01:07:57.767 回答
0

尝试:

data=[-1]*10 #initialize data to length 10 with invalid values for input
x = -1
while not (0<=x<=9):
    try:
        x=raw_input("integer : ")
    except ValueError:
        print("enter an integer")
data[9] = x 

您可以扩展它,主要是转换为整数并捕获输入错误。

于 2013-11-06T00:11:33.440 回答