爱程序,不爱bug
记录python的一些有趣/实用,但却冷门的小技巧和路过/踩过的BUG:
* 依积累不定时更新 *
12星座的unicode编码:
每个unicode编码均可表示一个字符,故12星座的字符表示为9800-9812:
关于缩进操作:
- Tab键 == Ctrl + ]
- 反Tab键 == Ctrl + [
关于暂停程序的方法:
- input()
用法:直接在欲等待处输入input()即可。
特点:
优点:不需要借助模块,执行到此处阻塞等待人工输入。
缺点:程序结束时候需要强制结束或者在控制台输入值。 - time.sleep()
用法:导入time模块;在欲等待处输入time.sleep(time)(time为数字,表示秒)即可。
特点:
优点:动态等待程序执行完毕,不需要强行终止,等待时间可调。
缺点:需要导入模块,等待规定时间结束后便继续往下执行。 - os.system(“pause”)
用法:导入os模块;在欲等待处输入os.system(“pause”)即可。
特点:
优点:不必强行终止;不必等待时间,可自由按下enter继续。
缺点:导入模块,执行系统命令。
基本数学运算坑:
求余数(%)、除(/)、求整数(//)
常用函数坑:
abs():计算绝对值
pow(x,y):返回x的y次方
round():返回五舍六入,不是四舍五入
字符串(string)坑:
将字符串放于一对单引号(’ ')或一对双引号(" ")中,若字符串数据有单引号可用一对双引号括起来解决;若字符串中含有单引号,使用一对单引号定义时要使用逸出字符(含有“ \ ”符号的字符),使用一对双引号定义时则不需要
当字符串过长时可用反斜杠( \ )划分换行
对于多于一行的字符串还可以使用一对三个单引号或一对三个双引号,效果雷同,但此用法与python的多行注释雷同,在较大程序中检测代码时使用一对三个单引号注释有时会被认为是对多于一行字符串的处理,导致程序报错。
字符串前加 r 可以防止逸出字符被转译,相当于取消逸出字符的功能
关于文件读写方法:
由于文件读写时可能产生IOError,一旦出错,后面的close()函数就不会被调用。为保证无论是否出错都能正确地关闭文件,可以使用异常的try…finally来实现
try:
fr = open('file','r')
fr.read()
finally:
if fr:
fr.close()
为简化代码,Python引入with语句来自动调用close()方法
with open('file','r') as fr:
fr.read()
原理:
- 进入时->调用对象的__enter__方法
- 退出时->调用对象的__exit__方法