try:
num=int(input("Enter a number:"))
def sum(num):
result=0
if num < 0:
print(num, "is not a natural number!")
else:
for i in range(1,num+1):
result=result + (i*i)
return result
print("The sum of square of first", num, "natural number is:", sum(num))
except ValueError:
print("Invalid Input")
对于给定的代码,我怎么能不对小于零的输入执行下面的语句?
print("The sum of square of first", num, "natural number is:", sum(num))
将此语句放入else块中没有任何帮助!
发布于 2020-09-13 03:28:52
在python中,可以在一行中编写if-else语句。
例如:
take_this if this_condition_is_True else take_this
所以现在如果num为负数,sum()
函数甚至不会被调用
try:
num=int(input("Enter a number:"))
def sum(num):
result=0
if num < 0:
print(num, "is not a natural number!")
else:
for i in range(1,num+1):
result=result + (i*i)
return result
print(f"The sum of square of first {num} natural number is: {sum(num)}" if num>=0 else "Stop giving negative numbers")
except ValueError:
print("Invalid Input")
发布于 2020-09-13 03:31:54
只需在else之前添加return
即可。应该能行得通。您可以简单地编写return
,也可以根据需要实际返回一个值
https://stackoverflow.com/questions/63866841
复制