我在程序中有一个循环
while number >= lst[count]:
rank -= 1
count += 1
我希望有一段时间能一直跑下去,直到它不再有意义。我尝试了一些不起作用的事情(见文章末尾),但以下几点起了作用:
lst = [int(x) for x in input().split()]
number = int(input())
count = 0
rank = 0
def attempt(lst, a):
try:
result = lst[a]
except:
result = float('inf')
return result
while number >= attempt(lst, count):
rank -= 1
count += 1
print(rank)
然而,我不认为这是非常优雅,似乎做作。是否有一个更优雅的解决方案(对于这种情况,通常也适用于给定的条件)?你知道吗
其他尝试(未成功):
while aliceScores[i] >= lst[count] and count < len(lst):
rank -= 1
count += 1
上述操作失败,因为while尝试运行count=len(lst)并运行错误,因为lst[len(lst)]不存在。你知道吗
while aliceScores[i] >= lst[count] and count < len(lst)-1:
rank -= 1
count += 1
上面的失败是因为我想在lst[len(lst)-1]的情况下修改秩,这在上面的代码中似乎不存在。你知道吗
为什么不使用
for
来迭代列表,使用enumerate
来计算尝试次数呢。 它会比一个while
imho更像Python。你知道吗唯一的原因
当count太大时,不能计算lst[count],但是可以利用pythonshort-circuits and/or operators这一事实
这样,如果count太大,或者第二个条件变为False,循环将正确停止。你知道吗
相关问题 更多 >
编程相关推荐