[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