如何向用户请求一系列数字,并返回除最大数以外的所有数字的总和?

2024-10-04 03:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我需要在python中创建一个函数,要求用户输入数字,完成后输入end。之后,我需要计算输入的数字之和,不包括最大值。(即如果用户输入20、50和100,则总和为70)

所以我有一个循环输入,直到用户输入单词end:

def excludeMax():
   while True:
      result = input('Enter next number or end:')
      if (result == 'end'):
        break

Tags: 函数用户truenumberinputdef数字result
3条回答

这看起来像你要找的。在

def excludeMax():
   numbers = []
   while True:
      result = input('Enter next number or end:')
      if (result == 'end'):
        break
      else:
        numbers.append(result)
   # notice this is after the loop
   numbers.remove(max(numbers))
   return sum(numbers)

只需对其进行排序,然后添加一个切片:

def exclude_max():
    return sum(sorted(map(int, iter(lambda: input('Enter next number or end: '), 'end')))[:-1])

结果:

^{pr2}$

将所有数字输入放入一个列表中。如果看到结尾,请从while循环中断。退出while循环后,从列表中删除max元素(例如,lst.remove(max(list)))。最后,通过sum(lst)得到总和。在

相关问题 更多 >