我正在处理Python列表操作。我试图从用户那里获取大量输入,并将其附加到列表中。
之后,我将验证列表元素是否为浮动值,如果不是,我将将消息打印为无效输入。此外,我想消除如果用户输入的值是42.195从列表。
如果我给上述值3次,我的代码将跳过42.195的第三次存在。我怎么解决这个问题?任何帮助都将不胜感激。
def isfloat(value):
try:
float(value)
return True
except ValueError:
return False
user_input = input("Enter the distance covered by racers in Marathon (Kilometers) please \n (press q to terminate):")
R = []
while user_input != 'q':
R.append(user_input)
user_input = input("Enter the distance covered by racers in Marathon (Kilometers) please \n (press q to terminate):")
print("R",R)
valid = False
def validate(R):
for i in R:
if isfloat(i) == False:
print('Invalid Input')
return False
elif (float(i) < 0):
print("Invalid Input")
return False
elif (float(i) > 42.195):
print("Invalid Input")
return False
elif (float(i) == 42.195):
x = R.index(i)
print('x',x)
R.pop(x)
return True
if validate(R):
print('R2:',R)
R.sort(reverse= True)
print(R[0:3])
if validate(R):
print('R2:',R)
R.sort(reverse= True)
print(R[0:3])样本输入
42.195
42.195
42.195
33.25
40
41.2
38.9
37.5
q发布于 2020-12-27 17:08:22
从您的函数中,您可以删除删除42.195的出现的elif部分,并使用列表理解器重新分配原始列表,而不需要值42.195。
R = [i for i in R if float(i) != 42.195]这将给出一个没有出现数字42.195的列表。
https://stackoverflow.com/questions/65467159
复制相似问题