【问题标题】:Python: Convert Strings to Integers, not using try-exceptsPython:将字符串转换为整数,而不是使用 try-excepts
【发布时间】:2018-07-08 10:55:49
【问题描述】:

我正在编写一个 Python 程序来将一组输入字符串转换为整数,然后将它们打印出来。输入的字符串不需要是整数(例如可以是“udai2”),这样的话,我想打印出字符串无效。

我最初的想法是使用int 函数将每个字符串简单地转换为整数,例如int(input_str)。然后,我会用 try catch 包围这段代码,以捕捉转换不起作用的时间(因此输入不是有效输入):

    try:
        print(int(item))
    except:
        print("Not a valid input")

但是,考虑到较大的输入大小,我担心这不是执行此操作的最高效方式,因为 try-except 的 except 部分在运行时确实会损害性能。有没有更快的方法来做到这一点?

【问题讨论】:

标签: python string casting try-catch


【解决方案1】:

根据非整数在输入文件中出现的频率,您可以在 try-catch 内循环读取它们,在每次读取时维护一个计数器,从而在发生异常时找出哪个错误。如果非整数相对较少,这可能会提供一些优势。

try-catch 应该依次位于外部 while 循环中,只要还有数据,该循环就会在错误循环后一个数字重新启动内部 while 循环(读取循环)。

这样您就不必输入大量的尝试块。 但总的来说,在引入任何这种复杂性之前,确实首先要找出是否真的存在问题。

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 2017-05-04
    • 2013-02-18
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多