Python高阶应用和常见错误总结

由于日常工作中实现一些开发,经常需要循环遍历列表元素,以及代码开发中定义类和实例化,在这个过程中会犯下一些错误,以及有一些理解,想着记录下来以便后续随时温故而知新,对于不当之处也请各位老铁指正。

迭代

因为在开发中经常需要循环提取列表元素进行处理,如提取标识,比较相似度等。迭代的含义就是重复循环做一些事,Python的iter(iterable)函数可以实现序列的迭代器,也可以用for和while循环实现自动调用next()获取下一个元素。map和lamba函数都可以实现可迭代序列的迭代操作。下面是一个小小的例子,实现整数的反转。

def Reverse(number):
    x=list(map(int,str(number)))
    result=[]
    i=len(x)-1
    while(i>=0):
     result.append(x[i])
     i=i-1
    return result

if __name__=='__main__':
    x=Reverse(7892)
    print(x)

Standard Output

[2, 9, 8, 7]

定义类和实例化

Python是面向对像和过程结合的语言,要实现较为复杂的功能时需要先抽象为各个类,定义类中操作的方法,再去实例化类后调用该类的方法执行,得到结果或者输出API接口。上面的例子是直接定义函数和调用,如果在类中定义函数则需要把self作为默认第一输入参数,另外输入的参数类型是多样的,这点与java不同,不需要定义,如果是可变参数,可以为*args,args接收的是一个tuple,如果是字典dict则是**kw是关键字参数,kw接收的是一个dict。

class Selution:

  def Reverse(self,number):

     x=list(map(int,str(number)))

     result=[]

     i=len(x)-1

     while(i>=0):

         result.append(x[i])

         i=i-1

     return result

if __name__=='__main__':

    y=Selution().Reverse(7892)

    print(y)

Standard Output

[2, 9, 8, 7]

常见错误

1、复制粘贴时错误

报错提示Python invalid non-printable character U+00A0,由于习惯了复制现成的代码,导致报错,所以一般先处理下复制的代码,去掉空格,或者再不行用笨办法重新敲一遍

2、实例化类调用函数时报错误

报错提示Missing 1 required positional argument,这里主要是实例化类时引用类名称时需要加上(),

如y=Selution.Reverse(7892)这样就会报上述错误,加上()后便不会报错。

3、迭代时报错

报错提示TypeError: 'int' object is not iterable

这里需要注意的是Python是对tuple、list、set、dict和字符串支持迭代器,但其它数值类型变量不可以使用迭代。解决的办法是先转为字符串再操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值