我的第一个问题是,当我输入tex -10时,除了ValueError之外没有运行,只有第一个输入再次运行,但如果我输入(-10),那么ValuError会运行。我希望ValueError运行当我输入-10时,没有副词的负数
while True:
try:
number = int(input("Area?"))
if number>0:
break
except ValueError:
print("That was not a positive number") ##
我的第二个问题是,这个功能只有在我有“a”,附加,而不是我写的时候才有效,有没有人知道为什么,以及我如何解决它?我想写一个文件。
def list_to_file():
file=open("file.txt","a")
file.write("\n")
file.write("".join(str(lista)))
答案 0 :(得分:1)
对于第一个问题,听起来你想提出一个值错误,除了它。
number = int(input("Area?"))
while True:
try:
if number > 0:
break
else:
raise ValueError()
except ValueError:
number = int(input("Please enter a positive number"))
至于第二个问题,当它是一个小的" lista"时,我无法写入文件。但是当它很大的时候才能够。我在这里提出了一个问题并得到了一个有效的答案
Python won't write small object to file but will with large object
简而言之,当你完成写入文件时,你必须用file.close()关闭文件。
def list_to_file():
file=open("file.txt","w")
file.write("\n")
file.write("".join(str(lista)))
file.close()
因此,如果您遇到同样的问题,这应该可以解决问题。
要为每次迭代创建一个新文件,请进行每次迭代递增的计数,然后将其发送到打印方法。然后使用该计数创建一个如下所示的唯一文件名:
def list_to_file(count, lista):
file=open("file_" + str(count) + ".txt","w")
file.write("\n")
file.write("".join(str(lista)))
file.close()
allLists = list of all your listas
count = 1
for thisList in allLists:
list_to_print(count, thisList)
count +=1
答案 1 :(得分:0)
您正在格式化您的try:except:声明错误。它应该是这样的:
try:
1/0
except:
print("the exception happened")
注意尝试是如何直接在上面,除了...在你的看起来像这样:
#your code
while True:
try:
number = int(input("State the number of latitudes you want to calculate energy for?"))
if number>0:
break
except ValueError:
print("That was not a positive number") ##
你有一个except语句挂在while语句下面,没有属于它的try语句。
你可能想要这样做的方式就是这样:
while True:
try:
#some sort of statement here that is going to throw an exception like 1/0 ( cant divide by zero bro )
except:
print("cant divide b zero bro")
#some statement that you want to happen after the above exception is thrown
break
除此之外,你的break
不是一个异常诱导语句,它只是停止循环结束。说" break"应该说像
while True:
try:
if _some_sort_of_logic_not_fufilled:
raise Exception("some exception text if you want") #you could use your ValueError here also since ValueError is derived from Exception
except:
print "see how it got here?"
break # this would go here if you want it to STOP the loop after it gets the exception, or dont put break if you want it to keep going... but a while True loop... you probably wnat to eventually break out of...