|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在斐波那他数列中,如果输入负值会提示错误重新输入,这就导致变量改变,于是想用全局变量表示,但是无法定义是什么原因:
以下代码有问题,因为全局变量定义不了,
- num= int(input("please input a number: "))
- def Fibonacca(num):
- [color=Red]global num[/color]
- while num < 1:
- print("sorry, please input another int number")
- num= int(input("the int number: "))
- if num == 1 or num == 2:
- return 1
- else:
- return Fribonat (num -1) + Fribonat ( num -2)
- temp = Fibonacca(num)
- print("%d 的斐波那他数列的值是 %d" % (num, temp))
复制代码
我不想把while循环拿出来,如果改的话怎么改,求大佬帮助!
全局变量 num 毫无必要
- #-*-coding:gbk-*-
- def Fibonacca(num):
- b = 0
- if num > 0:
- a , b = 1 , 1
- for x in range(3 , num + 1):
- a , b = b , a + b
- return b
- while True:
- num = int(input("请输入一个整数: "))
- if num > 0:
- break
- else:
- print("抱歉,请输入一个正整数!\n")
- print("%d 的斐波那他数列的值是 %d" % (num , Fibonacca(num)))
复制代码
|
|