我需要建立在Python标识列表中的最高数的子程序,但我不知道如何使用循环移动到下一个项目在列表中
我试图加1计数器,但我不能完全肯定的语法
number = []
for i in range(0, 5): # set up loop to run 5 times
numbers = int(input('Please enter a number: '))
number.append(numbers) # append to our_list
tempmax = number[0]
maximum = 0
for i in number:
if tempmax > maximum:
maximum = tempmax
tempmax = number[+1]
else:
tempmax = number[+1]
print(maximum)
这是我试过,但我真的不知道如何解决它。任何提示,将不胜感激。
一个for loop会给你你遍历序列中的每个项目。
你被点名输入数字numbers
和你的号码number
的名单。各地SWAP这些名字更清晰。
你迭代numbers
的列表,每个项目是number
。你把它命名为i
这可能使你认为这是一个索引,但它不是,它的实际数量。给它一个好听的名字:
for number in numbers:
然后,你要测试的号码是否是最大的:
if number > maximum:
maximum = number
这是要你想干什么?
number = []
for i in range(0, 5): # set up loop to run 5 times
numbers = int(input('Please enter a number: '))
number.append(numbers) # append to our_list
tempmax = number[0]
maximum = 0
for i in range(len(number)-1):
if tempmax > maximum:
maximum = tempmax
tempmax = number[i+1]
else:
tempmax = number[i+1]
print(maximum)
如果你想确定在列表中的最大值,你也可以做这样的事情更容易(无需重新创建轮)。
max_val = max(number)
print(max_val)
由于for循环的变量自动和负载它寻求的下一个项目你问它... for YOUR_VAR in YOUR_ITERABLE
,您可能需要你想要的项目工作,或在索引。
所以,如果你的项目是arr = [10, 20, 30, 40, 50]
,你可以访问它们两者兼得。
for item in arr:
print(item) # Will print successively 10, then 20, then 30, then 40, then 50.
array_indices = len(arr)
for index in array_indices:
print(index) # will print successively 0, 1, 2, 3, 4
print(arr[index]) # will print successively 10, then 20... 30, 40, 50
也许你正在寻找max(numbers)
。它会返回列表中的最大数。
如果你想获得最大后数的指数,试图numbers.index(max(numbers)) + 1
a = [1, 2, 3, 4, 1, 2, 3]
>>> max(a)
4
>>> a.index(max(a))
3
>>> a[a.index(max(a)) + 1]
1
注:list.index()的第一个最大的回报指数。