python中插入排序后的二进制搜索 def二进制(arr,key): 低=0 高=透镜(arr)-1 发现=错误 低
类型错误的原因是python中插入排序后的二进制搜索 def二进制(arr,key): 低=0 高=透镜(arr)-1 发现=错误 低,python,Python,类型错误的原因是arr是一个列表[str]。您可以通过将其更改为typeList[int]来解决此问题: value = int(input("how many number u want to add")) arr = [0] * value for n in range(value): arr[n] = input("Enter value") print("unsorted array: ") for n in arr: print(n, end=" ")
arr
是一个列表[str]
。您可以通过将其更改为typeList[int]
来解决此问题:
value = int(input("how many number u want to add"))
arr = [0] * value
for n in range(value):
arr[n] = input("Enter value")
print("unsorted array: ")
for n in arr:
print(n, end=" ")
for n in range(1, len(arr)):
temp = arr[n]
j = n - 1
while temp < arr[j] and (j >= 0):
arr[j + 1] = arr[j]
j = j - 1
arr[j + 1] = temp
key=int(输入(“输入键”))二进制(arr,key)这是最后2行代码你可能想去掉所有额外的垂直线。。。它使代码更难阅读。
arr
类型为List[str]
,但key
类型为int
。您的类型不匹配。arr[n]=int(输入(“输入值”)
。如何解决此问题
value = int(input("how many number u want to add"))
arr = [0] * value
for n in range(value):
arr[n] = input("Enter value")
print("unsorted array: ")
for n in arr:
print(n, end=" ")
for n in range(1, len(arr)):
temp = arr[n]
j = n - 1
while temp < arr[j] and (j >= 0):
arr[j + 1] = arr[j]
j = j - 1
arr[j + 1] = temp
for n in range(value):
arr[n] = int(input("Enter value"))