我真的不知道我做了两个while循环,但是当我运行它时,它只显示了第一个循环
do_caculation = True
while(do_caculation):
while(True):
stat_number_count = 0
stat_number_sum = 0
stat_number_average = 0
stat_number_maximum = 0
stat_number_minimum = 0
state_number_range = 0
try:
stat_number_name= input("What is the name of the file: ")
stat_number = open(stat_number_name,"r")
raw = stat_number.readlines()
raws = []
for number in raw:
raws.append(int(number))
stat_number_count = sum(raws)
stat_number_sum = len(raws)
stat_number_maximum = max(raws)
stat_number_minimum = min(raws)
stat_number_range = stat_number_maximum - stat_number_minimum
stat_number_average = stat_number_count/stat_number_sum
except Exception as error:
print("An error occurred reading", stat_number_name)
else:
print("File name:", stat_number_name)
print("Sum:", stat_number_sum)
print("Count:", stat_number_count)
print("Average:", stat_number_average)
print("Maximum:", stat_number_maximum)
print("Minimum:", stat_number_minimum)
print("Range:", stat_number_range)
while(True):
def median(raws):
n = len(raws)
if n < 1:
print ("XD")
if n % 2 == 1:
SB = sorted(raws)[n//2]
print (SB)
else:
print (sum(sorted(raws)[n//2-1:n//2+1])/2.0
永远不会退出第一个
while
循环,因此永远不会执行第二个循环从这段代码看来,您并没有真正理解
while
循环的作用。循环中的代码块将继续运行,直到您给出的条件不再为真。你用的是不可能是假的。因此,除非被
break
语句或异常打断,否则循环将始终运行—在本例中,异常不是一个选项,因为如果发生异常,您将捕获它并将字符串打印到控制台你需要有一些方法来摆脱你的
while
循环。我建议把它完全去掉——这里似乎没有必要。或者可以将循环的条件从True
更改为最终可能为false的条件。或者可以在循环中放入break
语句。或者其他一些可能性,但你明白我的意思相关问题 更多 >
编程相关推荐