/ / एक सूची में एक स्ट्रिंग ऑब्जेक्ट को फ्लोट में परिवर्तित करना - फ्लोटिंग-पॉइंट, वैल्यूअरर, टाइपकास्टिंग-ऑपरेटर

एक स्ट्रिंग ऑब्जेक्ट को एक सूची में एक फ्लोट-फ्लोटिंग-पॉइंट, वैल्यूएरर, टाइपकास्टिंग-ऑपरेटर में कनवर्ट करना

def get_info(file_object):
file_data = []
opened_file = open(file_object, "r")
for line in opened_file:
line = line.split(",")
file_data.append(line)
opened_file.close()
return file_data

def get_avg_mag(file_data):
sum = 0
for line in file_data:
mag = line[4]
mag = float(mag)
sum += mag
print(sum / len(file_data))

जब उपरोक्त कोड चलता है, तो मुझे एक त्रुटि संदेश मिलता है

"ValueError: स्ट्रिंग को फ्लोट में परिवर्तित नहीं कर सका:"

और मैं क्यों नहीं जानता

उत्तर:

जवाब के लिए 0 № 1

आपको यह त्रुटि इसलिए मिल रही है क्योंकि जब आप हैंफ़ाइल से पंक्तियों को पढ़ते हुए, आपको प्रत्येक पंक्ति के साथ अंत में एक नई पंक्ति वर्ण भी मिल रहा है। तो आपके अंतिम तत्व में दशमलव मान के साथ एक n होता है और इसलिए ValueError: स्ट्रिंग को फ्लोट में नहीं बदल सकता है।

नीचे के रूप में लाइन = लाइन.स्ट्रिप () जोड़कर नई लाइन खींचने की कोशिश कर रहा है -

for line in opened_file:
line = line.rstrip()
line = line.split(",")
file_data.append(line)