私は現在、ボーリングスタッフをPythonの本で自動化して、好奇心が強い問題chapter 7に取り組んでいます。 次のコードを実行しようとした場合:文字列メソッドについて
Traceback (most recent call last):
File "automation.py", line 27, in <module>
print(isPhoneNumber("415-555-4242"))
File "automation.py", line 13, in isPhoneNumber
if not text(i).isdecimal():
TypeError: 'str' object is not callable
str.isdigitためstr.isdecimal()メソッド()メソッドは、私が実行することを可能にするスイッチング:私は、次のエラーメッセージが表示されます
def isPhoneNumber(text):
if len(text) != 12:
return False
for i in range(0, 3):
if not text[i].isdecimal():
return False
if text[3] != "-":
return False
for i in range(4, 7):
if not text(i).isdecimal():
return False
if text[7] != "-":
return False
for i in range(8, 12):
if not text[i].isdecimal():
return False
return True
print("415-555-4242 is a phone number:")
print(isPhoneNumber("415-555-4242"))
print("Moshi moshi is a phone number:")
print(isPhoneNumber("Moshi moshi"))
をコードが適切ですが、なぜisdecimal()メソッドが機能しないのか知りたいのですが?
あなたの本があなたにこの種のPythonを教えたら、もう1つ見つけてください。コードは非常に不快です。 –
@EliKorvigoによれば、これは[正規表現](https://docs.python.org/3/library/re.html)の優れた使用例です。正規表現 ''\ d {3} - \ d {3} - \ d {4}' 'は、あなたの電話番号の種類に一致します。 –
'text(i).isdigit()'は同じエラーを発生させます。同時に()のタイプミスを修正する必要があります。 –