2017-10-25 9 views
0

数字がテキストフィールドにあっても、これは常に失敗していますか?私が間違っている場所について説明してください。前もって感謝します。私のテキストフィールドに数字が含まれているかどうかテストしようとしています

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プロパティに取り組んでいない変数に私のために上記の作品?私はそれがユニコードと何か関係があるかどうか疑問に思っていますか?

+1

情報を追加できますか? – Orionss

+1

あなたの解決策は正しいです。私はcontains_digitsを文字列 'fd5151'でテストしました。それはTrueを返しました。あなたの設定をもう一度確認してください。 –

+0

上記の私のための文字列を含む変数が、何らかの理由でui.textfieldのテキストプロパティで動作していないのですか?私はそれがユニコードと何か関係があるかどうか疑問に思っていますか? – user1814798

答えて

1

contains_digitため、この機能を使用します。

def contains_digits(d): 
    for char in d: 
     if char.isdigit(): 
      return True 
    return False 

をヴァン・ピアで述べたようにまた、print(v['textfield1'].text.isdigit)print(v['textfield1'].text.isdigit())する必要がありますが、テキスト内のすべての単一の文字が数字である場合にのみ真印刷します。

+0

私の答えを編集 –

0

以下の関数は、文字列に数字が存在する場合はTrueを返します。そうでない場合はFalseです。

def contains_digits(s): 
    return any(i.isdigit() for i in s) 
+0

数字があっても、私はまだ失敗します。コンソールは、<組み込みメソッドは0x109029ab0のstrオブジェクトの数字です>と解釈します。 – user1814798

関連する問題