2016-03-29 33 views
-5

Dize dönüştürmek için başka bir yolu var mı? Bunu kullanmadan yapmanız gerekir: Int (x) kullanmadan dize int nasıl dönüştürülür

x = '345' 
y = int(x) 

O zaman bu gibi çalışması gerekir:

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

Kendi "int" sürümünüzü uygulamak mı istiyorsunuz? Bir ev ödevi için yapması gereken şey ne tür? Burada sormadan önce kendinizi çözmeye yönelik çaba göstermeniz gereken şey nedir? –

+0

Neden buna ihtiyacınız var? –

cevap

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

Güncelleme: Yorum gönderilmiş gibi, pozitif tamsayılar için bu sadece eserler. Olumsuz sözcüklerle çalışmak için yapılabilir, ancak hiçbir şey için daha fazla çaba sarf edilir, çünkü int var! Bu arada, bu hatta 10.

aşağıdaki eserlerini daha iyi dışındaki üsler işlemez ve aslında sen eval kullanabilirsiniz int ;-)

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

Umut, negatif sayıları işlemeye gerek yok. –

+1

"Güvenlik nedenleri" için 'ast.literal_eval' bile kullanabilirsiniz! – syntonym

+0

python 2.7 için 'eval()' ve 'ast.literal_eval()', negatif olanlar için de çalışır. – Lafexlos

1

kullanmaz, ama için int inşaat iyi ne deniyorsun

>>> eval('123') + 5 
128 
İlgili konular