【问题标题】:How can I convert a user's string input such as 'int' or 'float' to types str and float?如何将用户的字符串输入(例如“int”或“float”)转换为 str 和 float 类型?
【发布时间】:2020-07-28 00:31:21
【问题描述】:

我想知道是否有一种快速的方法可以直接接受数据类型作为用户输入,以便我可以直接使用它来将类型转换为其他变量?
我不是在寻找条件或 for 循环来检查所有可能的选项。 提前感谢您的帮助。
例如:

data_type = input('Enter a data type: str , bool, int or float: ')

用户输入:str
我使用数据类型变量将整数更改为字符串类型:datatype(234)

【问题讨论】:

    标签: python input types type-conversion


    【解决方案1】:

    不建议使用 eval ,但这可以解决您的问题:

    data_type = eval(input('Enter a data type: str , bool, int or float: '))
    

    但我们也有比 eval 更安全的方法。那就是使用ast 库:

    import ast
    data_type = ast.literal_eval(input('Enter a data type: str , bool, int or float: '))
    

    【讨论】:

    • "eval" 就像一个魅力。还要感谢关于使用 eval 的公平警告。我做了一些研究,会很谨慎。出于某种原因,“ast.literal_eval”永远不会对我有用,即使是最简单的表达式也会抛出 ValueError。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多