我的代码工作,并要求命名的文件,有多少个数字。但它只是不断地要求数字,如果我把零,然后它做它应该做的。非常感谢您的帮助。我只是不知道如何修复代码,这真的很困扰我。你知道吗
import random
def generateRandomNumber(myfile):
try:
fileToBeWrittenTo = open(myfile,"w")
numberOfRandomNumbers = int(input("How many numbers" + \
" should the random file hold?:" ))
except Exception as potentialError:
print("An error has occured:", potentialError )
else:
for randomNumberCount in range(1, numberOfRandomNumbers + 1 ):
randomNumber = generateRandomNumber(myfile)
fileToBeWrittenTo.write(str( randomNumber ) + '\n' )
print( numberOfRandomNumbers, "numbers have been written" + \
" to the file ")
finally:
fileToBeWrittenTo.close()
print("\nEnd of program")
displayNumber(myfile)
randomNumber = random.randint(1,500)
return randomNumber
def main():
myfile = str(input("Enter file name here "))
with open(myfile, 'w+') as f:
generateRandomNumber(myfile)
return f
myfile.close
def displayNumber(myfile):
try:
myfile = open(myfile,'r')
total = 0
NORN = 0
Avg = 0
line = myfile.readline()
while line != "":
randomNumber = int(line)
total += randomNumber
NORN += 1
Avg = total / NORN
print( randomNumber )
line = myfile.readline()
except IOError:
print("Problem with file being opened")
else:
print("The average of the numbers is " + str(Avg))
print("The total of all the numbers is " + str(total)+\
"\nThere are " + str(NORN)+\
" in the file")
myfile.close()
finally:
print("End of program")
main()
generateRandomNumber
函数在randomNumber = generateRandomNumber(myfile)
语句中递归调用自身,如果输入0,则跳过该语句。你知道吗另外,您的
main
包含一个未使用的with open
,myfile.close
语句既不执行也不需要。试着缩短它。你知道吗通过使用with open,还可以显著简化
generateRandomNumber
和displayNumber
函数。你知道吗最后,
displayNumber
包含一个无限循环,请尝试将第二个line = myfile.readline()
缩进一步,或者重写函数以立即读取完整文件并使用一个简单的for
循环。你知道吗使用
try-except-else-finally
是好的,但我发现它会让你困惑,试着先学习try-except
。你知道吗你没有结束循环
以及
应该是的
这是你的工作代码
相关问题 更多 >
编程相关推荐