|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 饿火柴 于 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('结束!')
|
|