【问题标题】:Check if a character is inside a string via a variable in Python? [duplicate]通过 Python 中的变量检查字符是否在字符串中? [复制]
【发布时间】:2015-06-19 17:10:20
【问题描述】:

我是 Python 的新手。我正在制作一个程序,我从用户那里获取输入并检查字符串中是否有任何数字。我通过将它放入一个变量来检查它。通过 VARIABLE 进行检查不正确吗?

user_string=input("Enter the Word:")
print (user_string)
for index in (0,9):
    number=str(index)           #Typecasting Int to String 
    if number in user_string:   #Check if Number exist in the string
    print ("yes")

输出:

Enter the Word:helo2
helo2

【问题讨论】:

  • 如果有数字怎么办?
  • 你是在寻找特定的数字,所有的数字,每次遇到一个数字时要打印yes吗?
  • 任何数字,正如 Daniel 问题正确强调的那样,都在 for 循环中。对于范围内的数字(10),效果很好

标签: python python-3.x


【解决方案1】:

您可以对any 内的生成器表达式中的每个字符使用字符串方法isdigit()。这将在找到第一个数字字符时短路(如果存在)

>>> user_string = 'helo2'
>>> any(i.isdigit() for i in user_string)
True

>>> user_string = 'hello'
>>> any(i.isdigit() for i in user_string)
False

【讨论】:

    【解决方案2】:

    看看你的 for 循环。你正在循环一个元组(0,9)。所以实际上你只是在测试09。请改用range(10)

    更优雅,要获取字符串中的数字,可以使用集合:

    import string
    print 'yes' if set(string.digits).intersection(user_string) else 'no'
    

    【讨论】:

    • 谢谢,它有效,(y)
    猜你喜欢
    • 2015-05-05
    • 2019-01-25
    • 1970-01-01
    • 2011-05-02
    • 2011-12-06
    • 1970-01-01
    • 2017-12-05
    • 2015-07-07
    相关资源
    最近更新 更多