程序要求用户输入5个唯一号码,如果该号码已在列表中,则要求输入新号码。输入5个唯一数字后,显示列表
numbers = ['1','2','3','4','5']
count = 0
index = 0
while count <6:
user = raw_input ("Enter a number: ")
if user in numbers:
print "not unique"
if user not in numbers:
print "unique"
count += 1
numbers = numbers.replace(index,user)
index +=1
print numbers
当程序进入replace方法时,会引发属性错误
答案 0 :(得分:2)
您可以使用:
numbers[index] = user
列表没有replace()
方法。但是字符串确实有替换方法。
如果您希望在列表末尾添加数字,可以使用append()
:
numbers.append(user)
如果您希望在给定位置插入数字,可以使用insert()
(例如,位置0
):
numbers.insert(0, user)
答案 1 :(得分:2)
您不必在Python中初始化列表:
numbers = []
while len(numbers) != 5:
num = raw_input('Enter a number: ')
if num not in numbers:
numbers.append(num)
else:
print('{} is already added'.format(num))
print(numbers)
答案 2 :(得分:1)
您可以将其替换为下标符号,例如
numbers[index] = user
除此之外,你的程序可以改进,就像这样
numbers = []
while len(numbers) < 5:
user = raw_input ("Enter a number: ")
if user in numbers:
print "not unique"
else:
print "unique"
numbers.append(user)
print numbers
答案 3 :(得分:0)
如果您不关心数字的顺序,您应该查看集合。另外,如果你想使用数字而不是字符串,你应该将字符串转换为int。我会写这样的东西。
nums = set()
while len(nums) < 5:
try:
nums.add(int(raw_input("Enter a number: ")))
except ValueError:
print 'That is not a number!'
print 'Numbers entered: {}'.format(', '.join(str(x) for x in nums))
输出:
Enter a number: 5
Numbers entered: 5
Enter a number: 3
Numbers entered: 3, 5
Enter a number: 1
Numbers entered: 1, 3, 5
Enter a number: 7
Numbers entered: 1, 3, 5, 7
Enter a number: 9
Numbers entered: 1, 3, 9, 5, 7