1

私はPythonを初めて使用しますが、基本をすぐに理解し、実際に物事を行うことで最もよく学ぶので、まだ学んでいる間にプログラムを作成しようと決心しました。

だから私はPythonで多項式を追加するプログラムを作成しています。パーサーからの文字がisdigit()コマンドを使用して数値であるかどうかを確認する必要があります。

isdigit()などのコードを常に入力する代わりに、変数に割り当ててから入力n.isdigit()したいと考えています。これは機能しません。コマンド全体を入力しない代わりの方法はありますか?t = 'isdigit()'n.t

4

3 に答える 3

2

isdigit()インスタンスが与えられた場合、メソッドを呼び出すカスタム関数またはラムダを作成する必要があります。

t = lambda n: n.isdigit()

# ...

t(n)  # returns the result of `n.isdigit()`

または、クラス メソッドへの参照を格納できます。

t = str.isdigit

# ...

t(n)  # returns the result of `str.isdigit(n)`

そのままnのタイプstrです。

構文n.t は常にtの属性として検索されn、そのためにローカル変数tが参照されることはありません。

于 2012-10-06T15:05:09.700 に答える
2

コードを次のようなもので開始してt = str.isdigitからチェックt(n)することはできますが (外部からの属性検索をインターセプトできないため、文字列の属性にすることはできません)、これは実際にはかなり悪い考えです。入力するのは速くなりますが、読むのは非常に困難です。これは、数週間後にコードを作業するあなた (または他の誰か) を苦しめます。これは、不要な詳細を抽象化することが悪いからではありません (そうではありません)。このスニペットは、抽象化の恩恵を受けるほど複雑ではありません。このための読み取り可能な名前は、少なくともisidigt.

于 2012-10-06T15:06:41.603 に答える
0

関数を作成できます:

def t(n):
    if n.isdigit():
        return True
    else:
        return False

a = "a5b"
print t(a[1])

これがあなたが探していたものかどうかはわかりません。

于 2012-10-06T15:23:44.243 に答える