- 命令行报错显示: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解释器干了两件事情:- 在内存中创建了一个'hello word'的字符串;
- 在内存中创建了一个名为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
~~~~~
网友评论