【问题标题】:String into int without errors [duplicate]字符串转换为int而没有错误[重复]
【发布时间】:2021-04-14 08:29:42
【问题描述】:

我正在尝试编写一个将字符串转换为 int 并且在字符串为字母时不会出错的代码。我的想法是检查该字符串是否是数字,如果是,那么它会做一些事情。如果不是,它将打印一些内容并返回到函数的开头。 示例:

i = ()
def converter(i):
    i = input()
    if isinstance(i, int) == True:
        print('i is an integer')
    else:
        print('i is not an integer')
        converter(i)
#doesn't work :(

或者类似的东西。这个想法是让程序在输入字符串时不会崩溃,这就是为什么我不能使用 i = int(input())。提前致谢,祝您有美好的一天!

【问题讨论】:

  • 只需使用 try 和 except 值错误.. 这就是它的目的
  • i = input() 表示 i 将始终是 str 对象,isinstance(i, int) 将始终为 False

标签: python string integer


【解决方案1】:

我会更像这样:

def converter(your_string):
    try:
        the_integer = int(your_string)
        print(the_integer)
    except ValueError:
        print("Catch Your Error, So Not An Error")

【讨论】:

    【解决方案2】:

    您可以简单地使用 isdigit() 来检查字符串中的整数

    a=input()
    for i in range(len(a)):
        if a[i].isdigit():
            #integer is present
        else:
            #notpresent
    

    【讨论】:

    • 你可以使用a.isdigit()
    【解决方案3】:

    您可以使用正则表达式从字符串中过滤掉非数字字符:

    >>> import re
    >>> re.sub(r"\D", "", "1324l1kj234klj1235")
    '132412341235'
    

    你的脚本可以是

    import re
    
    def converter(string):
        return re.sub(r"\D", "", string)
    
    i = input()
    print(converter(i))
    

    【讨论】:

      猜你喜欢
      • 2014-06-20
      • 2015-06-18
      • 2017-05-07
      • 1970-01-01
      • 2012-01-24
      • 2013-11-04
      • 2021-12-25
      • 2016-07-07
      • 1970-01-01
      相关资源
      最近更新 更多