2016-03-29 16 views
-5

文字列をintに変換する方法はありますか?私はこれを使用せずにこれを実行する必要があります。int(x)を使わずに文字列をintに変換する方法

x = '345' 
y = int(x) 

そして、それはこのように動作するはずです:

>>> function('456') + 5 
461 
+6

あなたは独自のバージョンの 'int'を実装していますか?宿題の中でやるべきことは何ですか?あなたがここに尋ねる前にあなた自身を解決するために何らかの努力を示すべきなのか? –

+0

なぜそれは正確に必要ですか? –

答えて

1
def not_int(s): 
    if s.isdigit(): 
     return eval(s) 
    raise ValueError("invalid literal: %r" % (s,)) 

アップデート:コメントに投稿されたとして、正の整数についてのみ動作。 intが存在するので、それは負のリテラルで動作するようにできますが、何のためにも工夫はできません!ちなみに、これはさらに10

以下の作品より良い以外の塩基を処理しないと、実際にあなたがevalを使用することができint ;-)

def not_int(s): 
    return eval("int(%r)" % (s,)) 
+0

負の数を処理する必要はありません。 –

+1

「安全上の理由」のために 'ast.literal_eval'を使用することさえ可能です! – syntonym

+0

Python 2.7の場合、 'eval()'と 'ast.literal_eval()'も同様に負の値として機能します。 – Lafexlos

1

を使用しませんが、ためint作品だけで罰金何をしようとしているのですか?

>>> eval('123') + 5 
128 
関連する問題