Why Python don't accept 03 as a number?

jfong at ms4.hinet.net jfong at ms4.hinet.net
Sat Dec 8 21:51:00 EST 2018


Grant Edwards於 2018年12月9日星期日 UTC+8上午12時52分04秒寫道:
> On 2018-12-08, Cameron Simpson <cs at cskk.id.au> wrote:
> > On 07Dec2018 20:24, Jach Fong <jfong at ms4.hinet.net> wrote:
> >>Ian at 2018/12/8 UTC+8 AM11:28:34 wrote:
> >>> What is it exactly that you're trying to accomplish with this? Perhaps
> >>> there's a better way than using eval.
> >>
> >>This problem comes from solving a word puzzle,
> >>    ab + aa + cd == ce
> >>Each character will be translate to a digit and evaluate the correctness,
> >>    03 + 00 + 15 == 18
> >
> > Then you should be evaluating the digits and assembling values from 
> > them. Not trying to shoehorn a string through something that _might_ 
> > accept this string and do what you want. In Python 2 it will accept your 
> > string and not do what you want; at least in Python 3 it doesn't accept 
> > your string.
> 
> Just to be clear: you do _not_ want to use eval on the string.
> 
> If you're not the one who created the string, it might wipe your hard
> drive or empty your bank account.  If you _are_ the one who created
> the string, then generate the desired result instead.
> 
> -- 
> Grant

I didn't evaluate the input string directly. It's the translated "digit" string been evaluated, so shouldn't have any danger on using eval().

--Jach



More information about the Python-list mailing list