我在完成家庭作业时遇到问题,我需要向用户询问号码和位置,然后将该号码存储到列表中的特定位置。我的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)
答案 0 :(得分:2)
raw_input()
返回一个字符串,而不是python中的整数。要将其转换为整数,您需要执行x = int(raw_input('integer: '))
。
然后你的插入函数应该可以正常工作,但要注意你只是在每个插槽中添加相同的整数。
首先制作一个空值列表:
data = [' ']*10
然后做data[9-1] = str(x)
。不需要list.insert
:),也没有任何循环。
请记住,索引从0开始,所以第9个位置python的意思是第8个。
答案 1 :(得分:1)
data = [None]*10
data[9] = x
应该工作,你需要给它足够的插槽
您的代码存在问题
for i in range(10):
data.insert(9, x)
您正在第9位插入一个新项目......但是您的数组是空的,因此没有位置9可以插入
答案 2 :(得分: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
你可以扩展它,主要是转换为整数并捕获输入错误。
答案 3 :(得分:0)
我的成功尝试:
data = ['']*10
x = raw_input('integer: ')
position_to_be_entered=9
data[position_to_be_entered-1]=int(x)
print data