我对python来说还比较陌生,我已经在网上搜索了一个答案,但找不到答案。
下面的程序要求用户输入多个输入,然后要求他们输入一个长度等于输入数量的整数列表。
然后,程序将遍历列表,如果该数字小于ToyValue,并且小于列表中的下一个项目,则变量ToyValue
会加1。
NoOfToys=0
ToyValue=0
NumOfTimes=int(input("Please enter No of inputs"))
NumberList=input("Please enter Input")
NumberList=NumberList.split(" ")
print(NumberList)
for i in NumberList:
if int(i)>ToyValue:
ToyValue=int(i)
elif int(i)<ToyValue:
if int(i)<int(i[i+1]):
NoOfToys=NoOfVallys+1
ToyValue=int(i[i+1])
else:
pass
print(NoOfVallys)
这是一些数据和预期输出的示例。
#Inputs
8
4 6 8 2 8 4 7 2
#Output
2
我认为我在i[i+1]
行上遇到了麻烦,因为我无法在列表中获得下一项
我已经看过命令next()
,但在这种情况下我认为它没有帮助。
感谢您的帮助!
答案 0 :(得分:3)
您在列表中的项目与将这些项目的索引值之间混淆了。您需要做的是在一个范围内进行迭代,以便您可靠地处理索引值:
NoOfToys = 0
ToyValue = 0
NumOfTimes = int(input("Please enter No of inputs"))
NumberList = input("Please enter Input")
NumberList = NumberList.split(" ")
print(NumberList)
for i in range(0, len(NumberList)):
value = int(NumberList[i])
if value > ToyValue:
ToyValue = value
elif value < ToyValue:
if (i + 1) < len(NumberList) and value < int(NumberList[i + 1]):
NoOfToys = NoOfVallys + 1
ToyValue = int(NumberList[i + 1])
else:
pass
print(NoOfVallys)
当没有“下一项”时,您必须小心在列表的末尾。请注意对第二个“如果”允许的额外检查。
其他一些观察结果: