错误代码集合

def fbi(n):
    if n==1 or n==2:
        return 1
    else:
        return fbi(n)=fbi(n-1)+fbi(n-2)
    
n = eval(input())
print(fbi(n))

错误提示:Exited with error status 1
  File "6def0e3cfcaa312e52bcad3036d66b30", line 7
    return fbi(n)=fbi(n-1)+fbi(n-2)
                 ^
SyntaxError: invalid syntax

修正方法: return fbi(n-1)+fbi(n-2)

 

 

students = ['小明','小红','小刚']
students.append('小美')
print(students)

 

需要强调的是,字典中的键具备唯一性,而值可重复。也就是说字典里不能同时包含两个'小明'的键,但却可以有两个同为90的值。

一个很重要的不同点是列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表。

字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的。

students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)

False

scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2)

True

这也是为什么两者数据读取方法会不同的原因:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。

而整数、浮点数是不属于“一群排队办业务的人”的,如果把它们放在for循环里,代码会报错。

for循环和whlie循环最大的区别在于【循环的工作量是否确定】,for循环就像空房间依次办理业务,直到把【所有工作做完】才下班。但while循环就像哨卡放行,【满足条件就一直工作】,直到不满足条件就关闭哨卡。

 

所以说,当我们【工作量确定】的时候,我们就可以让for循环来完成重复性工作。反之,要【工作量不确定时】可以让while循环来工作:

# 适合用for...in...循环
for i in '神雕侠侣':
​     print(i)

# 适合用while循环
password = ''
while password != '816':
​     password = input('请尝试输入密码:')

不过有一种情况for循环和while循环都可以解决问题,那就是【把一件事情做N遍】:

#用for循环把诗句打印3遍
for i in range(1,4) :
    print('明日复明日,明日何其多。')

#用while循环把诗句打印3遍
j = 1
while j<4 :
    print ('明日何其多,明日何其多。')
    j =j+1

 

while False:
    print('while False')

这是因为while循环执行,必须要while后的条件为“真”,而【布尔值】False本身就是“假”,所以这个循环一次都没运行就结束了。

 

if '开心':
    print('熊猫')
if '':
    print('熊猫')

终端显示一个熊猫字符串,'开心'这个字符串作为一个条件时,被判定为真,所以if后面的条件满足,计算机会执行if的下一行代码;而 ''(空字符串)本身作为一个条件时,被判定为假,if后面的条件为假,计算机不会执行if的下一行代码。

使用bool()函数来查看一个数据会被判断为真还是假

print(bool(3==3.0))

i = 100
while i:
   print('把这句话打印100遍')
   i = i-1
while True:    
    print('上供一对童男童女')
    t = input('孙悟空来了吗')
    if t == '来了':
        break
print('孙悟空制服了鲤鱼精,陈家庄再也不用上供童男童女了')

while True我们在上面见过了,这个条件恒为真,就会开启无限循环。而while True常和break语句搭配使用,你也可以学着使用这种写法。

secret = 24  #设定秘密数字
while True:       
    guess = input('你来猜猜我的秘密数字是多少:')   #输入猜测数字
    if int(guess)==secret:  #数字对比
        print('正确!你很棒哦。') 
        break
    elif int(guess)>secret:
        print('你猜的太大了,请重新猜猜~')
    else:

print('你猜的太小了,请重新猜猜~')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值