亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ValueError:帶基數10:‘的int()文本無效

ValueError:帶基數10:‘的int()文本無效

千萬里不及你 2019-07-10 10:51:27
ValueError:帶基數10:‘的int()文本無效我正在創建一個讀取文件的程序,如果文件的第一行不是空白,它將讀取接下來的四行。在這些行上執行計算,然后讀取下一行。如果該行不是空的,它將繼續。但是,我得到了這個錯誤:ValueError: invalid literal for int() with base 10: ''.它正在讀取第一行,但不能將其轉換為整數。我能做些什么來解決這個問題?守則:file_to_read = raw_input("Enter file name of tests (empty string to end program):")try:     infile = open(file_to_read, 'r')     while file_to_read != " ":         file_to_write = raw_input("Enter output file name (.csv will be appended to it):")         file_to_write = file_to_write + ".csv"         outfile = open(file_to_write, "w")         readings = (infile.readline())         print readings        while readings != 0:             global count             readings = int(readings)             minimum = (infile.readline())             maximum = (infile.readline())
查看完整描述

3 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

為了記錄在案:

>>> int('55063.000000')Traceback (most recent call last):
  File "<stdin>", line 1, in <module>ValueError: invalid literal for int() with base 10: '55063.000000'

把我帶到這里.。

>>> float('55063.000000')
55063.0

必須被利用!


查看完整回答
反對 回復 2019-07-10
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

迭代文件并轉換為int的Pythonic方法:

for line in open(fname):
   if line.strip():           # line contains eol character(s)
       n = int(line)          # assuming single integer on each line

你想要做的事情稍微復雜一些,但仍然不是直截了當的:

h = open(fname)for line in h:
    if line.strip():
        [int(next(h).strip()) for _ in range(4)]     # list of integers

這樣,它在當時處理5行。使用h.next()而不是next(h)在Python2.6之前。

你的原因ValueError是因為int無法將空字符串轉換為整數。在這種情況下,您需要在轉換之前檢查字符串的內容,或者除了一個錯誤:

try:
   int('')except ValueError:
   pass      # or whatever


查看完整回答
反對 回復 2019-07-10
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

以下內容在python中是完全可以接受的:

  • 將整數的字符串表示形式傳遞給

    int

  • 將浮點數的字符串表示形式傳遞到

    float

  • 將整數的字符串表示形式傳遞給

    float

  • 通過浮子進入

    int

  • 將整數傳遞給

    float

但你得到了一個ValueError如果傳遞一個字符串表示形式,則浮子int,或任何整數(包括空字符串)的字符串表示形式。如果您確實希望將浮點數的字符串表示形式傳遞給int,正如@katyhuff所指出的,您可以先轉換為浮點數,然后再轉換為整數:

>>> 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 "<stdin>", line 1, in <module>ValueError: invalid literal for int() with base 10: '5.0'>>> int(float('5.0'))
  5


查看完整回答
反對 回復 2019-07-10
  • 3 回答
  • 0 關注
  • 1932 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號