トピック: isNum 関数を実装します。パラメータは文字列です。文字列が整数、浮動小数点数、または複素数の場合は True を返し、それ以外の場合は False を返します。
コード:
def isNum(str):
try:
a=eval(str)
if type(a) == type(1) or type(a) == type(1.0) or type(a) == type(1+1j):
return True
else:
return False
except:
return False
str1=input()
print(isNum(str1),end='')
操作結果:
質問 1: a=eval(str) がない場合はどうなりますか?
入力の入力タイプをテストします。
def isNum(str):
try:
a=eval(str)
if type(a) == type(1) or type(a) == type(1.0) or type(a) == type(1+1j):
return True
else:
return False
except:
return False
str1=input()
print(type(str1))
print(isNum(str1),end='')
出力は次のとおりです。
入力のデフォルトの入力タイプは、数値、浮動小数点数、複素数のいずれであっても文字列であることを説明します
eval 関数を使えば、文字列を整数、浮動小数点数、複素数に変換して演算に取り込むことができます
関数の型がわからない場合は、一般に eval 関数を使用すると非常に便利です. タイトルに整数入力が必要な場合は、 int1=int(input()) メソッドを使用して入力できます.
質問 2: なぜ try-except ステートメントを追加するのですか?
最初にtry文の使い方を復習する
試す:
<試してみる文>
例外 A: #A は、NameError、TypeError などの異常です...
<例外が発生した場合に出力する文(通常はプロンプト文)>
B以外:
……
3. 気まぐれですが、この質問は try except ステートメントだけで実現できますか?
もちろん違います.except が続く条件は異常な状態であるだけであり、通常の状態ではありません.