Ошибка преобразования в плавающий в Python, что другие, кажется, не получают - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь построить данные из текстового файла, и я продолжаю получать эту ошибку.

Traceback (most recent call last):
  File "C:/Users/User/Desktop/photonics/photon test n stuff/copying 7a from paper 2/wont work.py", line 15, in <module>
    T.append(float(lines[x].strip()))
ValueError: could not convert string to float: '9.17973518E'

Я спрашивал вокруг, и другие люди говорят мне, что они не получают ошибку.

https://www.chegg.com/homework-help/questions-and-answers/python-converting-exponential-im-getting-error-r-2-545454py-line-18-tappend-float-lines-x--q34639464

https://www.chegg.com/homework-help/questions-and-answers/python-lists-reading-files-im-trying-make-list-1-r-t-use-first-500-values-r-t-different-le-q34610346

Вот мойвесь код

import numpy
import matplotlib.pyplot as plt
################################### making R list
f=open('R 77777.txt',"r")
lines=f.readlines()
R=[]
for x in range(500):
    R.append(float(lines[x].strip()))
f.close()
################################### making T list
f=open('T 77777.txt',"r")
lines=f.readlines()
T=[]
for x in range(500):
    T.append(float(lines[x].strip()))
f.close()
################################## each A = 1 - R[i] - T[i]
A=[]
for i in range(len(R)):
    A.append(1 - (R[i]) - (T[i]))
K=numpy.linspace(0,100,500)
#print(K)
plt.plot(K, A)
plt.title("K over A")
plt.figure()
plt.plot(K, R)
plt.title( " R = Y, K = x ")
plt.show()

Вот мои данные.

найти T-список в https://pastebin.com/y2Uby5eF

найти R-список в https://pastebin.com/nX2Y6TVH

Почему я получаю этопроблема, но не другие?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Некоторые ваши данные находятся в научной нотации.

Функция float () в Python имеет некоторые проблемы с этим типом ввода.

Для того, чтобы это работало правильнонеобходимо сохранить суффикс.

x = "9.17973518E-02"

float(x)
0 голосов
/ 05 февраля 2019

Пока не могу комментировать: полученная строка с плавающей точкой не имеет чисел после E, поэтому, вероятно, она не рассматривается как научная запись.

...