vision1.0:这是种最基本的方法,相对来说提示语句比较啰嗦:
# average.py
def main():
sum=0.0
count = 0
moredata ='yes'
while moredata[0] in['y','Y']:
x = eval(input('请输入一个数据:'))
sum += x
count += 1
moredata = input("\n是否右下一个数据?('yes'or'no'):")
print('\n所有数据的平均值 ',sum / count)
main()
vision2.0:不需要输入判断语句,直接利用空格结束输入(哨兵原理)
# average1.py
def main():
sum=0.0
count = 0
x = 0
xstr = input('请输入一个数据:')
while xstr!="":
x = eval(xstr)
sum += x
count += 1
xstr = input('请输入一个数据:')
print('\n所有数据的平均值 ',sum / count)
main()
vision3.0:利用文件进行数据的读取,用于处理大量数据,每行一个数据,以此读取每行数据,知道读到空行。
# average2.py
def main():
sum = 0.0
count = 0
#infile = open('e:/Python/data.txt','r')
infile = open('data.txt','r')
line = infile.readline()
while line !='':
sum += eval(line)
count += 1
line = infile.readline()
print('Average is :',sum/count)
main()
vision4.0:这种方法实际上是对前面一种方法的改进,这样可以一行村多个数据,数据与数据间用空格隔开,利用嵌套循环进行读取。
# average3.py
def main():
sum = 0.0
count = 0
#infile = open('e:/Python/data.txt','r')
infile = open('data1.txt','r')
line = infile.readline()
while line !='':
for x in line.split():
sum += eval(x)
count += 1
line = infile.readline()
print('Average is :',sum/count)
main()