私はこのサイトと python を初めて使用するので、必要な情報をすべて提供できることを願っています。私はすでにこの質問を検索しましたが、どの解決策もうまくいかないようです。
テキストを読み取り、それに含まれる桁数を返す関数を作成しようとしています。例えば:
"It is 2012" は、"Text has 4 digits" を返す必要があります
数字がない場合は、次のような別のメッセージを返す必要があります。
"It is Monday" は、"Text does not contain digits" を返す必要があります
だから私はこれを書いた:
def CountNumbers(txt):
sum = 0
for n in txt:
if n.isdigit() == False:
print ("Text does not contain digits")
else:
sum += 1
print("Text has", sum, "digit(s)")
txt = str(input("Write some text: "))
(CountNumbers(txt))
機能は問題ないように見えますが、印刷は間違っています。たとえば、次のようになります。
Write some text: 65
Text has 2 digit(s) #this is ok, but...
テキストのみを入力する場合:
Write some text: sd
Text does not contain digits
Text does not contain digits
Text does not contain digits
Text has 0 digit(s)
テキストと数字を入力すると(ただし、テキストが最初に):
Write some text: sd 564
Text does not contain digits
Text does not contain digits
Text does not contain digits
Text has 3 digit(s)
エラーがブロックにあることはわかっていますが (私はそう思います)、return を使用すると、テキストの読み取りが完了する前に停止するため、方法がわかりません。私は約20以上の異なることを試しました。助けてください!
ありがとうございました !!
PS IDLE (Python Shell) ウィンドウだけでなく、.py として機能させるには、これが必要です。そのため、このようなブロックを記述しています。