我对python有点陌生,因为我是攻读GCSE计算机科学的10年级学生。我正在尝试编写冒泡排序算法,但在TypeError: Can't convert 'int' object to str implicitly
处遇到了障碍,我没有任何线索,因为我已经使用isinstance()
检查了x
和length
,它们都是整数。快来人救命!:)
以下是我目前的代码:
x = 1
list1 = list(input("What numbers need sorting? Enter them as all one - "))
length = len(list1)
print(list1)
while True:
for i in range(0,length):
try:
if list1[i] > list1[i+1]:
x = list1[i]
list1.remove(x)
list1.insert(i+1,x)
print(list1)
if list1[i] < list1[i+1]:
x += 1
print(list1)
except IndexError:
break
if x == length:
print("The sorted list is - ",''.join(list1))
break
list1
是由整数组成的(大概;这取决于用户键入的内容,但代码的编写基本上就像它需要一个整数列表一样),但是您对它使用''.join
,就像它包含字符串一样:错误在
join(list1)
调用中。str.join
需要字符串的iterable。但是,您的list1
是一个整数列表。所以结果就出了问题。你知道吗您可以通过将列表的元素映射到
str
等价项来修复错误本身,方法是:但话说回来,代码很容易出错:
x
既可以计算有序的元素,也可以交换元素x
,因此将对气泡计数两次。你知道吗IndexError
非常不雅观,因为您还可以限制i
的范围。你知道吗更优雅的解决方案可能是:
相关问题 更多 >
编程相关推荐