मैं लूप के लिए एक फ्लोट की कोशिश कर रहा हूं, और मुमू को एक फ्लोट होने की जरूरत है क्योंकि मैं इस स्केलर को सूची में लागू कर रहा हूं। मास एक फ़ाइल पर निर्भर एक और सूची है। मैंने मुमु को एक स्ट्रिंग में बदलने की कोशिश की है, लेकिन यह काम नहीं करता है, क्या पाइथन में कोई नियम है जो मुझे लूप के लिए फ्लोट वैल्यू की अनुमति नहीं देता है? अंतत: मैं चाहता हूं कि आउटफाइल इस तरह दिखे

अग्रिम में धन्यवाद!

#Mass mumu(%) -> this is the Statment_change
10 30
20 30
30 30
40 30
.
.
.
etc
    mumu=float(input('Enter the percentage of annihilation for muon e.g 0.5 or .5: '))
....
....
....
....
....
    with open('OUTFILE1.dat', 'w') as OUTFILE:
        OUTFILE.writelines(Statment_change)
        OUTFILE.writelines('\n')
        for i in range(len(Mass)):
            OUTFILE.writelines(Mass[i])
            OUTFILE.writelines('\t')
            OUTFILE.writelines(mumu*100)
            OUTFILE.writelines('\n')


0
Enrique92 26 जून 2020, 05:04

2 जवाब

writelines() स्ट्रिंग के चलने योग्य होने की उम्मीद कर रहा है और यह उनमें से प्रत्येक write() होगा।

यदि आप इसे एक स्ट्रिंग पास करते हैं, तो यह स्ट्रिंग में वर्णों पर पुनरावृति करेगा।

जब आप इसे एक फ्लोट (या एक इंट) देते हैं, तो पुनरावृत्ति विफल हो जाती है। यदि आप कुछ लिखना चाहते हैं तो इसे एक स्ट्रिंग में बदल दें (शायद प्रारूप() या एफ-स्ट्रिंग के साथ)।

print() एक इंट/फ्लोट लेगा, लेकिन writelines() नहीं लेगा।

>>> print(3)
3
>>> sys.stdout.writelines(3)
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
0
BowlOfRed 26 जून 2020, 05:18
statement_change = "#Mass mumu(%) -> this is the Statment_change"
mumu = 0.3
Mass = [10, 20, 30, 40]
with open('OUTFILE1.dat', 'w') as OUTFILE:
    OUTFILE.writelines(statement_change)
    OUTFILE.writelines('\n')
    lines = [f"{mass}\t{mumu*100}\n" for mass in Mass]
    OUTFILE.writelines(lines)
0
Pramote Kuacharoen 26 जून 2020, 05:35