Python 从命令行获取数字列表并打印最大数字
我必须编写一个程序,当命令行给出数字时,该程序能够读取并打印最大的数字Python 从命令行获取数字列表并打印最大数字,python,python-3.x,Python,Python 3.x,我必须编写一个程序,当命令行给出数字时,该程序能够读取并打印最大的数字 import sys numbers = sys.argv[1] def map(f,items): result = [] for i in range(0,len(items),1): result = result + [f(items[i]) return result 我正在努力找到最简单的方法来做这件事!谢谢大家! import sys print(max(float(x) for
import sys
numbers = sys.argv[1]
def map(f,items):
result = []
for i in range(0,len(items),1):
result = result + [f(items[i])
return result
我正在努力找到最简单的方法来做这件事!谢谢大家!
import sys
print(max(float(x) for x in sys.argv[1:]))
或者,您可以使用打印(max(sys.argv[1:],key=float))
(多亏了frostnational的出色添加)
演示:
说明:如果我们将print(sys.argv)
添加到脚本中,上述示例的输出将为
['a.py', '12', '6', '3.14', '11']
12.0
解决方案是切掉sys.argv的第一个元素,将其他字符串转换为生成器表达式中的浮点,然后找到最大值 @timgeb答案很好,但我也会检查您是否使用命令行界面,它可以为您当前和未来的代码提供一些非常好的选项,通过使用
argparse
,您可以节省大量编程时间,并获得完整的帮助和使用信息
我将以文档中的示例为例,因为它与您的问题相关,此代码将打印max或sum
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
对于max:只需使用数字列表调用代码即可
对于sum:或者您想要添加的任何其他选项,您可以使用一个参数,在这种情况下,
--sum
或max(sys.argv[1:],key=float)
如果您解释一下,会很有帮助。为什么float
和sys.argv[1://code>哇,这让它变得如此简单,哈哈。最后一件事是编写一个pgoram,从文件中输入一个数字列表并打印它们的总和。假设文件“x”包含数字:4 14 5对于求和,将max
更改为sum
@timgeb why float and not inti如果任务变得比给定示例更复杂,我绝对建议使用argparse。
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))