我在打开和阅读写python的文件时遇到了麻烦。我应该从.txt文件中读取值以便找到最大值,最小值等。当我在代码中创建和数组时,例如“values = [1,5,77]”,它可以正常工作。但是当我尝试打开.txt文件时,我的.py文件位于同一个地图中,我收到错误。有人帮帮我!
from statistics import median
max_value = None
min_value = None
avg_value = None
med_value = None
#values = [10, 0, 50, 99, -200, 1313, 7]
#with open("varden.txt") as values:
# for line in values:
# print (line)
#values = open("varden.txt", "r")
# file = values.readlines().split()
with open('varden.txt') as f:
values = f.readlines().split()
# max_value = values[0]
for number in values:
if number>max_value:
max_value = number
# min_value = values[0]
for number in values:
if number<min_value:
min_value = number
avg_value = sum(values)/len(values)
med_value = median(values)
values.close()
print ("Maximum value is: ", max_value)
print ("Minimum value is: ", min_value)
print ("Avarage value is: ", avg_value)
print ("Median value is: ", med_value)
错误:
File "laboration1del2.py", line 21
for number in values:
^
TabError: inconsistent use of tabs and spaces in indentation
答案 0 :(得分:2)
文件“laboration1del2.py”,第21行表示值中的数字:^ TabError:缩进中标签和空格的使用不一致
^如果这是你的错误,那么很可能是指你的循环似乎缩进太多了。 Python依赖于格式化,代替大括号,解释代码和定义范围。
使用您发布的代码,看起来您的循环有太多的缩进,并且您的值变量似乎有3个空格缩进它,这看起来很奇怪。我看到标签通常表示为4个空格或2个空格,但从不表示3。
请尝试以下代码:
with open('varden.txt') as f:
values = f.readlines().split()
for number in values:
if number>max_value:
max_value = number
for number in values:
if number<min_value:
min_value = number
编辑:您还在中使用open()块声明值。因此,我认为您不会像现在这样访问它。当这给你带来麻烦时,你也会想要缩进这些行。所以他们在的范围内,你可以用open()块
avg_value = sum(values)/len(values)
med_value = median(values)
values.close()
答案 1 :(得分:0)
我在行values = f.readlines().split()
中可以看到readlines()
的一个问题会返回一个列表,您正在将split()
应用于不可能的列表。
尝试以下一次,
values = f.readlines()[0].split('=')[1].strip() // [1, 2, 3, 4, 5, 6]