Issue converting to string to integer.

Dan Stromberg drsalists at gmail.com
Sun Jun 2 21:44:02 EDT 2013


On Sun, Jun 2, 2013 at 6:12 PM, Fdama <fsdama at gmail.com> wrote:

> Hi,
>
> I was following an exercise in a book when I edited the code and came
> across something I did not get. Here is the relevant part of the code that
> works:
>
> start=None      #initialise
> while start !="":
>     start=input("\nStart: ")
>
>     if start:
>         start=int(start)
>         finish=int(input("Finish: "))
>
>         print("word[",start,":",finish,"] is", word[start:finish])
>
> I then changed the code to this:
>
> start=None      #initialise
> while start !="":
>     start=int(input("\nStart: "))
>
>     if start:
>
>         finish=int(input("Finish: "))
>
>         print("word[",start,":",finish,"] is", word[start:finish])
>
> I combined the int conversion and the input on the same line, rather than
> to have two different statements. But  got an error message:
>
> Traceback (most recent call last):
>   File "C:\Users\Faisal\Documents\python\pizza_slicer.py", line 23, in
> <module>
>     start=int(input("\nStart: "))
> ValueError: invalid literal for int() with base 10: ''
>

Converting an empty string to base 10 doesn't fly, so if you hit a blank
line on the input(), you get a bad conversion.  In the first version,
you're only converting to base 10 if the string is non-empty.  In the
second, you're attempting to convert irrespective.

BTW, I'm partial to:

if not start:
   continue

...but that's a stylistic thing.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130602/8a31460c/attachment.html>


More information about the Python-list mailing list