我是python的新手,所以这是我的问题。 我在第31行的y_list上收到错误“IndentationError:expect a adented a block” - >之后第一个如果。 我加载的文件包含很多数字,其思路是跳过所谓的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
答案 0 :(得分:0)
转到第31行(然后是第36行)并缩进。点击该行开头的Tab键,使其向右突出一点。
答案 1 :(得分: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
块的一部分,因此需要从它们中缩进一个:
for k in range(1, len(x)):
if y_list>0:
y_list.append(y)
I += y[k-1] * (x[k] - x[k-1])
标准是使用四个空格,但如果混合制表符和空格,即使它是技术上有效的Python,也会遇到类似这样的问题。
答案 2 :(得分: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')
相同
*不起作用:/