You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取百万位π文件提取六连数字时遇ValueError错误求助

更新:

  • 说明:我使用Jupyter Notebook运行代码,若有人知道问题所在欢迎告知。已修改标题。
  • 感谢所有评论。经咨询他人得知我未预先初始化string_of_six变量,正常情况下这会返回NameError(但此处未出现)。我已将原字符串中的3.拆分出来,因此无需再在每次循环中检查x > 1。

原问题

以下代码片段旨在读取含百万位π的文本文件,将所有连续六位数提取到列表中(包括非唯一序列,如789012):

with open('pi_million_digits.txt', 'r') as file:
    pi_file = file.read(100)

for x in range(len(pi_file)):
    if x > 1 and x < (len(pi_file) - 5):
        string_of_six = pi_file[x:x+6]    

    cons_check = []
    for digit in string_of_six:
            cons_check.append(int(digit)) 
    print(cons_check)

当我仅读取前100个字符运行代码时,出现如下错误(文本文件中存在不可见的\n,但第一个换行符在100字符之后):

ValueError                                Traceback (most recent call last)
Cell In[84], line 20
     18         cons_check = []
     19         for digit in string_of_six:
---&gt; 20                 cons_check.append(int(digit)) 
     21         print(cons_check)
     23 #     converts string into int and puts them in a list

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

我正在排查导致ValueError: invalid literal for int() with base 10: '\n'错误的原因。

我已尝试以下方法:

with open('pi_million_digits.txt', 'r') as file:
    pi_withn = file.read(50)
    pi_file = pi_withn.replace('\n', '')
    print(file.read(50))

使用replace替换\n为空后仍出现相同错误。

执行print(pi_withn)和print(pi_file),两者均返回以下内容(所有字符在同一行):
3.141592653589793238462643383279502884197169399375

我也打开了文本文件检查,前100个字符中无换行符。


内容的提问来源于stack exchange,提问作者Fainthearted Fox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:43:17