Python基础

    xiaoxiao2022-07-12  138

    Python基础

    Linux常用命令Python基本数据类型数据类型的组成基本数据类型字符型数据及相关操作列表元组集合字典 语句函数 标签: Python


    相比C的编译型语言,python是一种高级的解释型脚本语言。

    python脚本语言执行过程

    python编译器讲将本编译成字节码文件(pyc/pyo)python虚拟机解释并运行字节码文件

    编译型语言的执行过程

    将C的源代码编译成机器码,生成可执行文件执行文件

    编译型语言的执行效率比解释型语言的效率高的多,但编译型语言的优势在于编写方便,更贴近人类语言,随编随用。

    Linux常用命令

    r读 4,w 写 2,x 执行 1 - 文件,d 文件夹

    chmod 命令修改文件权限 sudo chmod +777 filename ls查看目录 touch创建文件 rm删除文件 tail查看文件 tail -f -n 10 filename

    wget下载文件 wget url

    tar文件(注:tar是打包,不是压缩!) 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName

    .tar.gz 和 .tgz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName .zip 解压:unzip FileName.zip 压缩:zip FileName.zip DirName 压缩一个目录使用 -r 参数,-r 递归。例:zip -r FileName.zip DirName

    Python基本数据类型

    包含一系列数据和操作数据的方法的整体叫做对象

    数据类型的组成

    身份 ->(唯一标识符)id(aaa) 类型 -> type(aaa) 值 -> 具体数据 获取系统对变量的引用计数:sys.getrefcount(),起始计数为3

    基本数据类型

    基本数据类型说明int整型boolean布尔型string字符型list列表tuple元组dict字典

    python动态数据类型 常见的文件编码有ASCII、UTF8、UNICODE Python默认的文件编码是ASCII 中文decode将编码转换为UNICODE,常用于判断字符串长度 print(len("你好".decode("utf8")))

    位移(>>, <<): 数据单位转化 向右位移10单位转为Kb: >>10 -> Kb 向右位移20单位转为Mb: >>20 -> Mb

    字符型数据及相关操作

    常见的转义字符

    转义字符描述\ (在行尾时)续行符\ \反斜杠(中间没有空格)\ `单引号(中间没有空格)"双引号\a响铃?\b退格(Backspace)\e转义\000空\n换行\v纵向制表符\t横向制表符\r回车\f换页\oyy八进制数\xyy十六进制数\other其他普通输出

    字符串运算符

    操作符描述+字符串连接(直观,但不推荐,推荐使用join方法)*重复输出[]字符索引(从0开始,末尾可用-1)[:]字符串切片(包头不包尾)in成员运算符,包含not in成员运算符,不包含u字符串按UNICODE编码r/R原始字符串,字符串不处理转义%格式字符串(字符串拼接方法之一)

    字符串格式化符号

    符号描述%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整数%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科学计数法格式化浮点数%E与%e相同%g%f和%e的简写%G%f和%E的简写%p用十六进制数格式化变量地址

    字符串格式化输出

    "aaa %s %d" % ("", 3) "{who} {where}".fromat(where = "", who = "") "this is %(who)s %(where)s" % {"who":"", "where":""}

    操作文件

    file = open("FileName", "w") # 只能写字符串 file.write("11111111") file.close() import linecache # 使用了File的readlines内置方法 linecache.getline() # with语句,close方法由with语句执行完自动执行 with open("filename", "a") as f: f.write("lalala")

    文件操作模式:w - 写,r - 读,a - 追加 文件read后,游标发生变化,可使用file.seek(0)方法,回到起始位置

    string模块的常用内置方法

    import string # 0-9数字 string.digits # 所有小写字母 string.lowercase # 所有标点符号 string.punctuation string.ascii_lowercase string.ascii_uppercase import sys import string f = open("test.log", "w") # 绑定终端输出到文件 sys.stdout = f help(string) f.close()

    “”.swapcase(): 字符串大小写转换 “”.isdigit(): 返回是否是纯属在

    # 翻译表 r = string.maketrans("123", "abc") line.translate(r)

    列表

    Python列表的特点:

    有序的集合通过偏移索引读取数据支持嵌套[[1, 2, 3], [4, 5, 6]]可变的数据类型

    列表数据的增删改查

    数据索引 正向索引:a[:4:1]从零开始,长度为4,步长为1 反向索引:a[-1:-4:-1] 默认索引数据添加 +:列表合并,生成一个新的列表 extend:将参数列表中的每个元素添加到原有列表中,修改原列表 append:添加任意对象的引用到列表末端 insert:插入任意对象的引用到指定位置数据修改 对列表进行赋值即可完成数据覆盖修改 a=[1, 2, 3] a[0]="haha" a=["haha", 2, 3]数据删除 del:删除指定索引位置的元素 remove:移除第一个匹配元素,失败抛出异常 pop:返回最后一个元素

    列表方法

    列表元素的成员关系in/not in列表推导式[expr for iter_var in iterable if cond_expr] 迭代iterable中的值在满足if条件后,传递给iter_var,经由expr生成所需列表。if条件可省略,for条件不唯一 eg:生成1到100的平方的数列->[x*x for x in range(100)]列表排序:sort(),列表反转:reverse() 排序和反转都是针对列表本身进行操作,返回值为None内置函数list():将可迭代对象转换为list列表,保持可迭代对象的顺序,空参数返回空列表range与xrange xrange常用于内存紧张时的大量数据只操作部分数据时的处理列表赋值,为引用赋值,列表的增删改操作都针对同一份列表进行修改

    元组

    Python元组的特点:

    有序集合通过偏移索引读取数据属于不可变对象,不能排序,修改。

    元组相对列表更能保证数据的安全,确保不会因为数据的变化导致程序出错。

    dir(变量) - >查看支持的内置类型方法 tuple(list对象) -> 生成一个新的元组

    集合

    集合没有顺序的概念,不能被切片和索引

    创建可变集合set() 不可变集合frozenset() 添加操作add()添加整体,update()将迭代对象进行添加 删除remove()删除不存在元素会抛出异常 成员关系in\not in 交集(&)输出公共部分、并集(|)输出所有,并去除重复、差集(-)出现在前者中而不存在与后者中 set常用于针对list列表元素去重

    字典

    Python字典的特点

    内部无序只能通过键读取字典元素值,字典的键不可变,常见的键有数字,字符串,元组(元组内不能包含列表)等字典可嵌套,组成复杂数据结构可修改原字典内容

    创建字典 字典 = {“key1”:value1, “key2”:value2 …}或dict()

    添加/修改内容:

    info["phone"] = "android" info.update({"phone":"ios"})

    删除内容

    # 清空字典 info.clear() # 删除字典的引用 del info["key"] info.pop("key", "默认值"):key没有找到的情况下返回默认值

    成员关系:in/has_key("key")判断的是键名key是否存在

    keys():返回包含字典所有key的list列表 values():返回包含字典所有值的list列表 items():生成一个字典的容器[()]

    get(“key”):info.get("name", "lilei")当key不存在时可设置返回默认值

    语句

    print语句 逗号, 合并至一行内输出 重定向>> 输出print到文件 f = open("", "w") print >> f, "aaaaaaaaaaaaaaaaaaaaaaaa" f.c 流程控制语句 条件 + 循环 if expression: statement else: statement while expression: statement for i in iterable: statement

    布尔值操作 与and True and True -> True False and True -> False False and False -> False 或or True or True -> True False or True -> True False or False -> False 非not not True -> False not False -> True

    if…else…语句 is判断是否引用相同的数据对象 ==检查值是否相同

    while语句 条件为True循环执行while下的逻辑 常用于循环次数不确定的场景

    for语句 条件为True循环执行for下的逻辑 常用于循环次数确定的场景 for的最后一次迭代值将会保留 如果for语句后包含有else语句,在执行完成for条件后,若所有的for条件都没有执行则会执行else语句

    break/continue break:结束整体循环 continue:跳过当前执行下一次循环

    函数

    函数是抽象的第一步,函数需要返回,每一个函数需要包含对应的文档说明 只有调用的函数才会执行,多值返回时会自动转为元组

    函数定义

    #coding:utf-8 def func_name(): """ 函数说明文档 在使用__doc__内置函数时显示 """ statement return value if __name__ == "__main__": print(func_name()) print(func_name.__doc__)

    函数的参数 位置参数: 使用时传入参数数目必须与定义数目一致

    def func(a, b, c): return a, b, c print(func(1, 2, 3))

    可选参数, 方法参数的默认值

    def func(a=1, return_data="json"): if return_data=="json" return json(a) elif return_data=="xml": return xml(a) else: return a print(func(2, return_data="xml"))

    函数参数和变量的作用域仅在当前方法内 使用global修饰后可在方法内修改全局变量(不推荐使用)

    可变参数中的 可选参数** : 字典 和 位置参数* : 元组

    def func(**kv): return kv print(func()) print(func(a=1, b=2)) def func(*t, **kv): return t, kv print(func()) print(func(1, 2, [1, 2, 3], a=1, b=2))

    参数共存的情况下, 先完成定义位置参数,紧接着是可变参数中的位置参数,最后是可选参数

    最新回复(0)