怎么用python输入计算公式_如何从python3中的用户输入计算min和max

这里有更多的方法你可以做到这一点。

首先,至少有两个人已经发布了与Martijn Pieters的第一个答案完全相同的内容,我不想被遗漏,所以:scores = []

for i in range(num_judges):

scores.append(int(input("Enter a score: ")))

x=min(scores)

y=max(scores)

现在,每当您创建一个空列表并在循环中附加到它时,这与列表理解完全相同,因此:scores = [int(input("Enter a score: ")) for i in range(num_judges)]

x=min(scores)

y=max(scores)

同时,如果num_judges是巨大的,而您不想仅仅为了找到最小值和最大值而构建这个巨大的列表呢?好吧,你可以随时跟踪他们:x, y = float('inf'), float('-inf')

for i in range(num_judges):

score = int(input("Enter a score: "))

if score < x:

x = score

if score > y:

y = score

最后,有没有办法让这两个世界都得到最好的结果?通常,这只是意味着使用生成器表达式而不是列表理解。但在这里,您需要min和max来遍历分数,这意味着它必须是一个列表(或其他可重用的东西)。

你可以通过tee来解决这个问题:scores= (int(input("Enter a score: ")) for i in range(num_judges))

scores1, scores2 = itertools.tee(scores)

x = min(scores1)

y = max(scores2)

然而,这并没有真正的帮助,因为在封面下,tee将创建与您已经创建的列表相同的列表。(tee在并行遍历两个迭代器时非常有用,但在这种情况下不是这样。)

因此,您需要编写一个min_and_max函数,它看起来非常像前面示例中的for循环:def min_and_max(iter):

x, y = float('inf'), float('-inf')

for val in iter:

if val < x:

x = val

if val > y:

y = val

return x, y

然后,你可以在一个漂亮的,可读的一行中完成整个事情:x, y = min_and_max(int(input("Enter a score: ")) for i in range(num_judges))

当然,当你不得不编写一个8行函数来让它工作时,它并不是真正的一行程序……只是8行函数在将来的其他问题中可能是可重用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值