我需要一个代码,要求输入5个pos号码,然后向后输出这些号码。我想使用while循环。这是我到目前为止所提出的,但它是第二个while循环不起作用。
{
"query": {
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "{}mi".format(list_info.radius_b),
'location': {
"lat": zip.lat,
"lon": zip.lng
}
}
},
},
"term" : { "status" : "approved" }
},
"sort" : [
{
"_geo_distance" : {
'location': {"lat": zip.lat,
"lon": zip.lng},
"order" : "asc",
"unit" : "mi",
"mode" : "min",
"distance_type" : "sloppy_arc"
}
}
],
"from": 0,
"size": 0,
}
答案 0 :(得分:0)
你应该迭代numberList的长度而不是正数。 基本上修改第二个while循环到此。
i = SIZE;
while i>0:
print(numberList[i-1])
i=i-1
答案 1 :(得分:0)
在第二个循环中,您使用相同的positiveNum变量而不将其重置为数组的大小,请尝试:
SIZE = 5
numberList= []
ARRAY_LIMIT = SIZE -1
while len(numberList) < SIZE :
positiveNum = input("Enter a positive number:")
numberList.append(positiveNum)
index = SIZE - 1
while index >= 0:
print(numberList[index])
index -= 1
答案 2 :(得分:0)
您的第一个问题是input
会返回string
,因此如果您想使用它进行索引,则需要将其转换为int
。您可能会收到以下错误。
TypeError:list indices必须是整数或切片,而不是str
# Won't work with string
numberList[positiveNum]
positiveNum -= 1
# Need to cast to int first
positiveNum = int(input("Enter a positive number:"))
在while循环条件下转换它只适用于条件,它不会将变量中的值更改为int
,它仍然是string
# Works only once
while int(positiveNum) >= 0:
现在,下一个问题是您使用positiveNum
作为索引号。如果输入的最后一个数字大于IndexError
,则会导致SIZE
,例如100。
SIZE = 5
number_lst = []
while len(number_lst) < SIZE:
# Should perform error checking if you must have positive numbers
num = int(input("Enter a positive number: "))
number_lst.append(num)
# Output backwards using while
i = len(number_lst) - 1
while i >= 0:
print(number_lst[i])
i -= 1
这里还有一些for循环替代方案
# Output backwards using for
for item in number_lst[::-1]:
print(item)
for item in reversed(number_lst):
print(item)
for i in range(len(number_lst) - 1, -1):
print(number_lst[i])
for i in reversed(range(len(number_lst))):
print(number_lst[i])
答案 3 :(得分:0)
使用while循环:
size = 5
number_list = []
while len(number_list) < size:
number_list.append(int(input("Enter a positive number: ")))
i = 1
while i <= size:
print(number_list[size - i])
i += 1
为第二个循环使用for循环:
size = 5
number_list = []
while len(number_list) < size:
number_list.append(int(input("Enter a positive number: ")))
for i in number_list[::-1]:
print(i)
使用两个for循环,在这种情况下更合理:
size = 5
number_list = []
for _ in range(size):
number_list.append(int(input("Enter a positive number: ")))
for i in number_list[::-1]:
print(i)