美文网首页
十个经验点总结(1)

十个经验点总结(1)

作者: ZzzZBbbB | 来源:发表于2019-03-07 13:06 被阅读0次
    • 命令行报错显示:SyntaxError: Non-ASCII character '\xe7' in file
      原因:程序编码出了问题
      解决方案:脚本开头加上:#-*- coding: UTF-8 -*-
      目前python3.x中不会出现这样的问题,上述问题只会在python2.x中出现,原因是在python2.x中默认使用ASCII编码,所以不能随便使用中文,而在python3.x中默认使用Unicode协议的utf-8编码 (关于编码问题,还不是特别能理顺,看来需要之后博文见了~)

    • python中没有自增自减符,但是可以使用++ /--,虽然没什么意义
      i+=1 不等于++i ; ++i 等价于 +(+i) ; +++++++i == i 返回 True
      《learning python》的解释:although Python now supports statements like X += Y, it still does not have C’s auto-increment/decrement operators (e.g., X++, −−X). These don’t quite map to the Python object model because Python has no notion of in-place changes to immutable objects like numbers。

    • 关于str和repr的简单理解:
      str()能以合理的方式将值转换为用户看的懂得字符串。--(白话:给用户看/可读性)
      repr()获得值的合法python表达式表示。(白话:给开发者看/明确性)
      print(repr("Hello,\nworld!")) 打印 'Hello,\nworld!'
      print(str("Hello,\nworld!")) 打印
      Hello,
      world!
      在类中,我们可以重构__str____repr__方法

    • python的指导原则之一就是:显式大于隐式
      所以一般情况下,建议使用import module 而不是from module import xx,不过这东西了解就好,如果嫌麻烦也可以直接from..

    • 在定义函数的过程中,由于存在参数是列表等可变类型的情况,如果不想影响到函数外的数据,可以使用copy,或者使用切片进行复制
    def function_name(x_list):
        x_list = x_list.copy() # strategy 1
        x_list  = x_list[ : ]     #  strategy 2
    # 避免覆盖输入x_list
    #传入的x为列表之类的话,由于传入的是引用,所以在函数中改变会直接改变原来的值
    

    如果要创建一份诸如序列等复杂对象副本,必须使用切片操作或者copy操作,这样才不会指向同一对象


    • 理解变量在计算机内存中的表示非常重要,例如对于variable_name = 'hello world'这一句话,python解释器干了两件事情:
      1. 在内存中创建了一个'hello word'的字符串;
      2. 在内存中创建了一个名为variable_name的变量,并把它指向’hello world’

    在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。


    如何理解python中的不可变对象的“不可变”:
    对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。


    • python中的除法与整除现象:
    >>> 9/3
    3.0       #python3.x中不论是否整除,最后得到的均为浮点数,
              #所以有的时候在程序中得到的结果不要忘了int(result)
    >>> -13//3
    -5        #正负整除搞不清楚---记住余数大于0就完事了
    >>> 9//2.3
    3.0       #整除一个浮点数,结果也为浮点数
    

    • 碰见一个问题,千万不要傻乎乎的去直接敲代码(虽然自己可能根本敲不出来),正确的打开方式如下:
      分析(Analysis)----啥问题,值得去做么~❓
      设计(Design)----咋做哇😢
      实现(Implementation)----我先去瞅瞅有没有现成的库👀
      测试(Testing)----看看编的对不对🤔
      部署(Deployment)---- 大展身手去解决问题咯😁
      维护(Maintenance)----放弃吧,你个小破程序不值得维护(如果想再次去看自己写的烂代码,激励自己不断提高,请鼓起勇气多多迭代版本)😣

    • 没事多敲敲import this,说不定就顿悟了😎

    ~~~~~
    You are my favorite hello and my hardest goodbye.
    ---- to an unknown person
    ~~~~~

    相关文章

      网友评论

          本文标题:十个经验点总结(1)

          本文链接:https://www.haomeiwen.com/subject/atxcpqtx.html