我试图测试我的文本字段是否包含python中的数字
即使文本字段中有数字,也总是返回失败?请帮我解释一下哪里出了问题。提前谢谢我试图测试我的文本字段是否包含python中的数字,python,Python,即使文本字段中有数字,也总是返回失败?请帮我解释一下哪里出了问题。提前谢谢 import ui import console import re _digits = re.compile('\d') def contains_digits(d): return bool(_digits.search(d)) def button_pushed(sender): if contains_digits(textfield1): print(textfield1
import ui
import console
import re
_digits = re.compile('\d')
def contains_digits(d):
return bool(_digits.search(d))
def button_pushed(sender):
if contains_digits(textfield1):
print(textfield1)
else:
print('failed')
v=ui.load_view()
print(v['textfield1'].text.isdigit)
textfield1 = str(v['textfield1'].text)
print(textfield1)
v.present('fullscreen')
**更新**
对于我来说,上面的方法适用于包含字符串的变量,但出于某种原因,它不适用于ui.textfield的text属性?我想知道它是否与unicode有关?将此函数用于包含数字:
同样如Van Peer所述,printv['textfield1'].text.isdigit应为printv['textfield1'].text.isdigit,但仅当文本中的每个字符都是数字时,它才会打印为True。如果字符串中存在数字,则以下函数将返回True,否则返回False
您可以添加更多信息吗?您的解决方案是正确的,我已经测试了字符串“fd5151”的contain_数字,它为我返回True。只需仔细检查您的配置。上面的方法对包含字符串的变量有效,但由于某种原因它对ui.textfield的text属性无效?我想知道这是否与unicode有关?编辑我的回答我仍然失败-即使有数字。控制台显示
def contains_digits(d):
for char in d:
if char.isdigit():
return True
return False
def contains_digits(s):
return any(i.isdigit() for i in s)