读取百万位π文件提取六连数字时遇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: ---> 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
相关产品推荐
相关产品推荐

