我遇到一些硬件问题。
我需要创建一个程序,要求用户输入20个名称。然后,程序必须按字母顺序对这些名称进行排序,然后将新排序的名称显示给用户。到目前为止,我已经知道了:
# main
def main():
# total names to enter
TOTAL_NAMES = 20
# initialize index and names array
index = 0
names=[0]*(TOTAL_NAMES + 1)
print('Please enter 20 names:')
for index in range(1, TOTAL_NAMES + 1):
names[index] = input(''+ str(index) + ': ')
# EVERYTHING UP THERE IS GOOD
# time to sort the names
for maxElement in range(arraySize - 1, 0, -1):
switchNames = False
for index in range(0, maxElement):
if names[index] >= names[index + 1]:
temp = names[index]
names[index] = names[index + 1]
names[index + 1] = temp
switchNames = True
if not(switchNames):
switchNames = True
main()
但是,当我运行程序时,出现此错误“ Type错误:'int =”和“ str”的实例之间不支持TypeError:'> ='
在过去的几个小时里,我一直在努力解决这个问题,但时间很困难。
答案 0 :(得分:0)
array1=[]
limit=int (input("ENTER THE LIMTI"))
for i in range (0,limit):
data=input()
array1.append(data)
for i in range(0,limit):
for j in range(i,limit):
if array1[i]>array1[j]:
temp=array1[i]
array1[i]=array1[j]
array1[j]=temp
for i in range (0,limit):
print (array1[i])
答案 1 :(得分:0)
def sorting_array(name_list,limit,indication):
对于范围在(0,limit)中的i:
for j in range(i,limit):
if indication==1:
if name_list[i] > name_list[j]:
temp=name_list[i]
name_list[i]=name_list[j]
name_list[j]=temp
else:
if name_list[i] < name_list[j]:
temp=name_list[i]
name_list[i]=name_list[j]
name_list[j]=temp
for i in range (0,limit):
print (name_list[i])
name_list=[] limit=int (input("ENTER THE LIMTI")) for i in range(0,limit):
data=input()
name_list.append(data)
indication=int(input("ENTER 1 -> ASCENDING 2-> DESCENDING"))
sorting_array(name_list,limit,indication)
答案 2 :(得分:-1)
欢迎使用StackOverflow!
首先,我看不到arraySize
被定义在任何地方,因此我假设您已经定义了它,但未将其包括在代码段中。
您的错误是由此for index in range(0, maxElement):
语句引起的,该语句在第一次循环迭代时将index
的值设置为0。因此,它正在尝试访问names[0]
。但是,代码不一致,首先是从索引1开始,然后是索引0
因此,请改用for index in range(1, maxElement):