python合道-常规笔记

2019-03-13  本文已影响0人  oopp8

“人生苦短,我用Python”(” Life is short, you need Python”)

从最开始接触c,c++,VB,SQL,asp,c# ,Java,JS, Android到python。在编程的路上摸爬滚打了好久。最近项目中使用python较多,因此将自己使用感受与大家分享,通过与大家的交流互动进而对python进行更深层次的了解应用。

0x00.python基本介绍

python官网
anaconda官网
pycharm
vscode

环境安装:官网下载安装包安装。建议安装anaconda,在anaconda集成环境中安装各个工具。

0x01.变量及数据类型

Python有五个标准的数据类型:Numbers数字,String字符串,List列表,Tuple元祖,Dict字典

Numbers数字分为:int整型,long长整型,float浮点型,complex复数

  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
   注:Python中存在小数字池:-5 ~ 257

String字符串:由数字、字母、下划线组成的一串字符,用于表示文本的数据类型
bool布尔型:True,False,用于做判断
List列表,支持字符,数字,字符串以包含列表(即嵌套),用[]标识,有序对象
Tuple元祖,用()标识,不能二次赋值,可以理解成不可变的列表(只读列表),有序对象
Dict字典:用{}标识,由索引(key)和它对应的值value组成,无序对象

数据类型转换方法: 常用的就是int(),float(),str(),list(),tuple()。查看类型type()

+加法
-减法
* 乘法
/除法
%取模,返回除法的余数
//取整除数
**

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

0x02.序列及通用操作

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
' 单引号
" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出
操作符 描述
+ 字符串连接
* 重复输出字符串
[] 通过索引获取字符串中字符
[ : ] 截取字符串中的一部分
in 成员运算符 - 如果字符串中包含给定的字符返回 True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
% 格式字符串
符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址

其他常用功能可参考序列

0x03.字典映射

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。

其他常用功能常见内置函数都通用len,type,cmp

0x04.条件及循环语句

num = 5     
if num == 3:            # 判断num的值
    print 'boss'        
elif num == 2:
    print 'user'
elif num == 1:
    print 'worker'
elif num < 0:           # 值小于零时输出
    print 'error'
else:
    print 'roadman'     # 条件均不成立时输出

多条件判断:or and

控制语句 描述
break 语句 在语句块执行过程中终止循环,并且跳出整个循环
continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass 语句 pass是空语句,是为了保持程序结构的完整性。
for i in range(3):
    for j in range(2):
        print(i,j)
count = 0
while (count < 9):
    print('The count is:', count)
    count = count + 1
    if count  == 4:
        break
print("Good bye!")
loop-over-python-list-animation.gif

0x05.函数

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield
abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reverse() zip()
compile() hasattr() memoryview() round() import()
complex() hash() min() set()
delattr() help() next() setattr()
dict() hex() object() slice()
dir() id() oct() sorted() exec
#可写函数说明
def printinfo(name,age=35,*vartuple):
    "打印任何传入的字符串"
    print("Name: ", name)
    print("Age ", age)
    for var in vartuple:
        print(var)
    return
printinfo("miki",50,70,60,50);
def vsum(a,b,c):
    return a+b+c

vsum = lambda a,b,c:a+b+c

0x06.模块与包

0x07.数据读写

f = open('path.txt', 'r')
print(f.read())
f.close()
f = open('path.txt', 'w', encoding = 'utf8')
lst='abcd'
f.writelines(lst)
f.close()

file.flush()刷新文件内部缓冲
file.read([size])从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size])读取整行,包括 "\n" 字符。
file.readlines([sizeint])读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
file.seek(offset[, whence])设置文件当前位置
file.write(str)将字符串写入文件,返回的是写入的字符长度。

import pickle
data = {'a':[1,2,3,4], 'b':11, 'c':'asd'}
p = open( 'data.pkl', 'wb')
pickle.dump(data,p)
p.close()
f = open( 'data.pkl', 'rb')
s = pickle.load(f)
模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
上一篇 下一篇

猜你喜欢

热点阅读