【问题标题】:user input a list of numbers and use it in a Python function用户输入一个数字列表并在 Python 函数中使用它
【发布时间】:2017-08-24 18:40:52
【问题描述】:

我正在尝试使用以下用户输入结构运行此函数,但无法获得正确答案:

def biggest_number(*args):   
   print (max(args))  
   return max(args)

a = (int(x) for x in input().split())

# 3,4,5

print (biggest_number(a))

到目前为止,我已经尝试了不同类型的括号“(”用于元组,“[”用于列表,并尝试将字符串转换为整数。

【问题讨论】:

    标签: python list function input tuples


    【解决方案1】:

    您可以使用 splat 运算符解压缩生成器表达式:

    print (biggest_number(*a))
    

    虽然我认为您实际上想要使用元组或列表等容器,因为您只能使用 gen。 exp。一次,以便在 print 之后对max 的下一次调用会给您一个错误

    a = [int(x) for x in input().split()]
    

    或者:

    a = tuple(int(x) for x in input().split())
    

    但是,您仍然需要解包,因为您的函数不直接采用可迭代对象。

    【讨论】:

    • 嗨,摩西!感谢你的回答。这是我得到的: ValueError: invalid literal for int() with base 10: '(3,4,5)' with the tuple option
    • @shaucha 看起来您输入错误。您的输入应以空格分隔。
    【解决方案2】:

    您可以尝试使用 raw_input() 而不是 input()。

    【讨论】:

    • 嗨 Dharmesh,如果我错了,请纠正我,但看起来 raw_input 用于 Python 2.7,而 input 用于 Python 3.6
    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多