On Tue, Aug 23, 2011 at 6:52 AM, Peter Otten <__pete...@web.de> wrote:

> simulacrx wrote:
>
> > check=(1,2,3,4,5,6,7,8,9,"/","*","-","+","(",")","[","]")
>
> You have to quote the digits: 1 is an integer while "1" is a string of
> length one:
>
> >>> "1" == 1
> False
>
> Also, you forgot the "0".
> Note that there's no need to use a tuple as set() will happily accept a
> string:
>
> check = set("0123456789/*-+,()")
>
> > while True:
> >      a=raw_input("type your query : \n")
> >      c=set(a).intersection(set(check))
> >
> >      if c:
> >          print *eval("float(%s)"%a)*
> >      else:
> >          print "error! please use -defined operators-!"
> > -----------------------------
> >
> > this script works.. but if i type
> >
> > 15/8
> >
> > it returns 1.. no floatin'.. i must fix this? can anyone help me?
>
>
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>

I'm not sure if the performance difference would matter, but if you make
check a set above your loop there is no need to use the set(check) in the
loop when check will do

-- 
Joel Goldstick
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to