ValueError: invalid literal for int() with base 10: ''

前端 未结 18 2120
甜味超标
甜味超标 2020-11-22 02:06

I am creating a program that reads a file and if the first line of the file is not blank, it reads the next four lines. Calculations are performed on those lines and then t

18条回答
  •  别那么骄傲
    2020-11-22 03:10

    The following are totally acceptable in python:

    • passing a string representation of an integer into int
    • passing a string representation of a float into float
    • passing a string representation of an integer into float
    • passing a float into int
    • passing an integer into float

    But you get a ValueError if you pass a string representation of a float into int, or a string representation of anything but an integer (including empty string). If you do want to pass a string representation of a float to an int, as @katyhuff points out above, you can convert to a float first, then to an integer:

    >>> int('5')
    5
    >>> float('5.0')
    5.0
    >>> float('5')
    5.0
    >>> int(5.0)
    5
    >>> float(5)
    5.0
    >>> int('5.0')
    Traceback (most recent call last):
      File "", line 1, in 
    ValueError: invalid literal for int() with base 10: '5.0'
    >>> int(float('5.0'))
    5
    

提交回复
热议问题