错误报告

  • 循环(while和for)

1.beake和continue控制:前者跳出循环,后者继续下次循环;

2.变量的重置:涉及变量重置(如开关变量)的代码位置要灵活运用。

3.循环嵌套:

跳出(继续下一次循环1)内层循环--break(continue);

跳出外层循环:1.依赖内层情况--内层循环设置开关变量,外层循环据开关变量break;2.不依赖内层循环--break;

4.注意循环变量的控制,不要陷入死循环。


  • list列表

1.注意列表的再操作问题;比如,删除后再查询。

2.下标越界;

3.列表是有序,可重复的,使用列表的情况下,要考虑重复有没有影响;若有,可考虑弃用或添加if语句,排除重复。


字典:

       1.for循环中,循环得到key(在大字典里循环)没有get方法,但在value值里循环得到的若是一个小字典,它会有get()方法

        2.字典的键key,若是变量不加引号,不是变量,或不在本函数内声明的变量要加引号。

        3.避免键值错误的方法,要使用复制粘贴。

 

users={'1':{'account':'account','pswd':'pswd'}}
 for i in users:
     i.get('account')# 'str' object has no attribute 'get'
for value in users.values():
    value.get('account')
    print(value.get('account'))#account

if结构:

          1.没有else的多分支结构不会报错,但一般慎用,若嵌套在其他多分支结构容易报错或者看错。

i=2
if i==1:
    print(1)
elif i==2:
    print(2)
elif i==3:
    print(3)
i = 0
if i!=0:
    if i == 1:
        print(1)
    elif i == 2:
        print(2)
    elif i == 3:
        print(3)
else:
    print(0)

         2.在写好了if结构代码后,添加了一句for遍历,相应的else要修改所缩进值.

 


函数:

         1.函数尽量保证1功能一函数,这样,便于后续增加代码时,可以适当调用函数来减少代码的重复。

 


通过下标得到的数据,依照数据的类型具有什么属性

索引使用时在方括号内,【start:stop:step】

def a():
    print("a")
c=a()
print(c)

c=None


全局变量:

语法:global u

           u=a

错误示例:global u = a


类方法的递归调用

class Core:
    def __init__(self,state):

        self.state=state

    def show_index(self):
        '''展示首页·'''
         self.show()

错误示例:

class Core:
    def __init__(self,state):
        self.state=state

    def show_index(self):
        
        self.show(self)

    def user_change_password(self):
        '''修改密码'''
        old_pd=input('请输入旧密码:')
        print(old_pd)
        if old_pd == self.password:#同一账户
            new_pd = input('请输入新密码:')
            if new_pd == old_pd :
                print("旧密码与新密码相同!修改失败!")
                return 'error'
            else:
                self.password = new_pd
                print("修改成功",core.online.username,'的新密码为',core.online.password)
                return 'ok'
        else:
            return 'error'
        print(old_pd == self.password,self.password,'11' )
        return show_index()

print(old_pd == self.password...不会执行,因为无论进入if 1/0都会被return直接结束函数所以最后两行不会执行

class Person:
    def __init__(self):
        self.__online = None

    def set_online(self,user):
        self.__online = user

    def get_online(self):
        return self.__online

def engin():
    p.set_online(User('fgdg'))

p=Person()

d={'1':p.get_online().account}
engin()
print(d['1'])#'NoneType' object has no attribute 'account'
# 出错原因:engine执行前,字典先初始化,p.get_online()=None,执行engine()后,p.get_online()=User('fgdg')
# 单子典已经执行,不会改变

面向对象中的方法和地址

    def set_online(self,f_user):
        self.__online=f_user

    print (self.set_online)是一个方法,不加括号,输出地址
    print (self.set_online())输出地址

面向对象:

在面向对象的开发设计过程中,要注意几个类之间的互通,结构的严谨完整

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值