Python 演習 - isNum() 関数の実装

トピック: 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 が続く条件は異常な状態であるだけであり、通常の状態ではありません.

おすすめ

転載: blog.csdn.net/m0_65485230/article/details/130325048