[python] Počítání v jiných soustavách

rajcze rajcze na gmail.com
Sobota Únor 3 13:19:27 CET 2007


wow, tak pulce z toho nerozumim :) ale vypada to pekne :)

On 2/3/07, Jan Janech <devel na atlas.sk> wrote:
> rajcze wrote:
> > Ahoj,
> > tak sem si to ze zvedavosti zkusil vyrobit, a neni to tak slozite:
> >
> > import re
> > from math import *
> >
> > soustava = int(raw_input("Zadejte soustavu: "))
> > priklad = raw_input("Zadejte priklad: ")
> >
> > pom=[]
> > pom.append(re.split(r"[^0-9]+", priklad))
> > pom.append(re.split(r"[0-9]+", priklad))
> > if pom[0][0] is not '':
> >     pom[0].insert(0,'')
> >
> > out = ""
> >
> > for i in range(len(pom[1])):
> >     try:
> >         out += str(int(pom[0][i], soustava)) + pom[1][i]
> >     except:
> >         out += ' ' + pom[1][i]
> >
> > print out,'=',eval(out)
> >
> > zkousel sem to teda jen na par prikladech (jmenovite "101 * (10 +
> > 111)" a "sqrt((10*10+100)/10)"
> >
> > s pozdravem
> >   Josef Skladanka
> >
> Taky jednoduchsi sposob je:
>
> import re
> reCislo = re.compile('\d+')
>
> eval2 = lambda xxx: eval(reCislo.sub(lambda x: str(int(x.group(0), 2)),
> xxx))
>
> #priklady:
>  >>> eval2('101 * (10 + 111)')
> 45
>  >>> eval2('sqrt((10*10+100)/10)')
> 2.0
>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


-- 
Rules of Optimization:
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.


Další informace o konferenci Python