小鱼卵求助!关于程序结束后询问是否重试,然后使程序循环
本帖最后由 饿火柴 于 2023-4-3 22:36 编辑原始代码如下:
def fab(n):
a1 = 1
a2 = 1
a3 = 1
if n < 1:
print('输入有误!')
return -1
while (n-2) > 0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a3
月份 = int(input('请输入月份:'))
result = fab(月份)
print('总共有%d对小兔子出生!' % result)
我想让程序结束后询问是否重试,然后就成了这样:
def fab2():
def fab(n):
a1 = 1
a2 = 1
a3 = 1
if n < 1:
print('输入有误!')
return -1
while (n-2) > 0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a3
月份 = int(input('请输入月份:'))
result = fab(月份)
print('总共有%d对小兔子出生!' % result)
重试 = input('是否重试:')
while 重试 == '是':
if True:
fab2()
else:
print('结束!')
但是没有使函数fab2()运行,所以加上了,就成了这样:
def fab2():
def fab(n):
a1 = 1
a2 = 1
a3 = 1
if n < 1:
print('输入有误!')
return -1
while (n-2) > 0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a3
月份 = int(input('请输入月份:'))
result = fab(月份)
print('总共有%d对小兔子出生!' % result)
重试 = input('是否重试:')
fab2() #在这里首次运行函数
while 重试 == '是':
if True:
fab2()
else:
print('结束!')
结果:
请输入月份:20
总共有6765对小兔子出生!
是否重试:是
Traceback (most recent call last):
File "C:/Users/EHC/Desktop/1.py", line 25, in <module>
while 重试 == '是':
NameError: name '重试' is not defined
我能想到的问题是:无法在外部调用函数内的变量:重试 == input ('是否重试:')
有什么解决方法吗?
def fab2():
global 重试
def fab(n):
a1 = 1
a2 = 1
a3 = 1
if n < 1:
print('输入有误!')
return -1
while (n-2) > 0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a3
月份 = int(input('请输入月份:'))
result = fab(月份)
print('总共有%d对小兔子出生!' % result)
重试 = input('是否重试:')
fab2() #在这里首次运行函数
while 重试 == '是':
if True:
fab2()
else:
print('结束!') isdkz 发表于 2023-4-3 22:39
def fab2():
global 重试
def fab(n):
太感谢了{:5_108:}
页:
[1]