-1

私はPythonを初めて使用するので、ここに問題があります。31行目のy_listの最初のifの後に、「IndentationError:インデントされたブロックが必要です」というエラーが表示されます。私がロードするファイルにはたくさんの数字が含まれており、そのアイデアはいわゆるy_listの負の数字をスキップすることです。

filename = "data_5.dat" # this file can also be found in the sandbox folder 
x_list = []
y_list = []

fp = open(filename)
for line in fp:
    var1, var2  = line.split(",")    # here we wish to split the line using the ',' character

    # since we want them in numeric format we need to convert
    a = float(var1)
    b = float(var2)

    # put them into two lists
    x_list.append(a)
    y_list.append(b)

fp.close()    # close the file


x = x_list
y = y_list

I = 0.0
L = 0.0

for k in range(1, len(x)):
if y_list>0:
        y_list.append(y)
        I += y[k-1] * (x[k] - x[k-1])

for k in range(1, len(x)):
if y_list>0:
        y_list.append(y)
        L += y[k] * (x[k] - x[k-1])

print I
print L
print (I+L)/2
4

3 に答える 3

0

行番号31(次に行36も)に移動し、インデントします。行の先頭にあるTabキーを押すと、少し右に目立つようになります。

于 2013-03-19T13:06:45.440 に答える
0
for k in range(1, len(x)):
if y_list>0:
        y_list.append(y)
        I += y[k-1] * (x[k] - x[k-1])

これらのifブロックはブロックの一部であるforため、ブロックから1つインデントする必要があります。

for k in range(1, len(x)):
    if y_list>0:
        y_list.append(y)
        I += y[k-1] * (x[k] - x[k-1])

標準では4つのスペースを使用しますが、技術的に有効なPythonであっても、タブとスペースを混在させると、このような問題が発生するのが一般的です。

于 2013-03-19T13:11:19.830 に答える
0
 #!/usr/bin/python

 import base64

 if naujas==20:
      Ivestis=input('Iveskite failo varda kuri noresite koreguoti')

 file2 = open(Ivestis, 'r')

 failas=file2.read() file2.close() file4=open(Ivestis,'r+')

 bfailas=failas.encode("UTF-8") efailas=base64.b64encode(bfailas)
 print(efailas)



 # encoded _data has the encoded form of our text – ’see the source’


 efailas=str(efailas)

 file4.write(efailas)

 file4.close()

 elif naujas==20:

 file3 = open('Naujas.txt', 'r+') 


 naujas=base64.b64decode(file3.read())

 print(naujas)


 else

 print('Tikriausiai tokio failo nera')

同じ

*動作しません:/

于 2019-04-04T16:10:54.407 に答える