Python 斐波那契为什么不能用or

把and改成and以后,不管输入多少出来的值都是1 这是出了什么问题呀

格式化一下代码,你这个代码肯定是有问题的 if n==1and2,n要么是1要么是2

应该是

if n==1 or n==2:

不能是

if n==1 or 2:

n==1 or 2 不是n等于1或者等于2的意思。

n==1 和 2 是两个分开的条件,把两个条件等效的互换一下你就明白了:

2 or n==1

其中2是永远为真,or 的结果也永远为真 

 

#求斐波那契数列中第n个数的值,n是正整数 #求斐波那契数列里第12个数 # 1,1, 2,3, 5, 8,13, 21, 34, 55,89,14#第n个交换n-2次 n= int(input( 请输入您要的第几个斐波那契数:ifn==1and2: print(1) else: num1 = 1 num2.= 1 count =0 while True: a=num1 num1 = num2 num2=a+num2 count += 1 ifcount==n-2: break print (num2)

#求斐波那契数列中第n个数的值,n是正整数 #求斐波那契数列里第12个数 # 1,1, 2,3, 5, 8,13, 21, 34, 55,89,14#第n个交换n-2次 n= int(input( 请输入您要的第几个斐波那契数 if n==1and 2: print(1) else: num1 = 1 num2.= 1 count = 0 while True: a=num1 num1 = num2 num2=a+num2 count += 1 ifcount==n-2: break print (num2)

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y