python span=(5、20)_Python常忘的基础知识

0.目录

1.进制

2.字符

3.类型

6.函数

1.进制

1.1 各进制的表示

0b(零b)表示二进制 0o(零o)表示八进制 0x(零x)表示十六进制

1.2 各进制的转换

bin() 将其他进制数转化为二进制 int() 将其他进制数转化为十进制 hex() 将其他进制数转化为十六进制 oct() 将其他进制数转化为八进制

2.字符

2.1 转义字符

转义字符:

特殊的字符

无法“看见”的字符

与语言本身语法有冲突的字符

\n 换行

\r 回车

' 单引号

\t 横向制表符

2.2 原始字符串

用 r'字符串' 或 R'字符串' 表示原始字符串

3.类型

3.1 基本数据类型

有序(序列):

列表 list

元组 tuple

无序:

集合 set

字典 dict

序列共有的操作:

len() 求序列的长度

max() 求最大元素

min() 求最小元素

ord() 求ASCII码值

集合的操作: {1,2,3,4,5,6} - {3,4} 为 {1,2,5,6} {1,2,3,4,5,6} & {3,4} 为 {3,4} {1,2,3,4,5,6} | {3,4,7} 为 {1,2,3,4,5,6,7}

字典的规则:

不能有相同的key

key的取值:必须是不可变类型,如int str tuple

value的取值:str int float list set dict

3.2 type()

type((1)) 是 int type((1,)) 是 tuple

type(('hello')) 是 str type([1]) 是 list

定义空元组:type(()) 定义空集合:type(set()) 定义空字典:type({})

4.变量与运算符

4.1 值类型与引用类型

值类型:int str tuple(不可变)

引用类型:list set dict(可变)

id()函数显示变量在内存中的地址

4.2 列表的可变与元组的不可变

列表可改变

元组不可改变

4.3 运算符

1.算术运算符:加减乘除、取余%、乘方** 2.赋值运算符 3.比较(关系)运算符 不只是数字才能做比较运算:

4.逻辑运算符:and(与)、 or(或)、 not(非) 5.成员运算符:in、not in

6.身份运算符:is、not is 如何判断变量的值、身份与类型?

用 == 比较值是否相等

用 is 比较身份是否相等,即比较两个变量的内存地址是否相等,可以用 id() 查看变量的内存地址

用 isinstance() 比较类型是否相等,不推荐使用 type(a) == int 这种方法,而是使用 isinstance(a, str) 这种方法。而且还可以使用 isinstance(a, (int, str, float)) 判断a是不是int, str, float中的任意一种。最重要的是type不能判断变量的子类是否属于某种类型,但是isinstance可以

ps:对象的三个特征:id、value、type(分别用is、==、isinstance) 7.位运算符(把数字当做二进制数进行运算):

&(按位与)

|(按位或)

^(按位异或)

~(按位取反)

<

>>(右移动)

5.包与模块

5.1 Python项目的组织结构

包 → 模块 → 类 → 函数、变量 包相当于文件夹

命名空间:包名.模块名

如何让普通文件夹成为包?——必须包含__init__.py文件

__init__.py文件本身也是一个模块 包下__init__.py的模块名就是包名

5.2 导入模块

import导入模块:

import 模块名 as xxx

import 包名.模块名 as xxx——print(包名.模块名.变量名)

from import 导入模块

from 包名.模块名 import 变量名

from 包名 import 模块名

from 包名.模块名 import *

在模块中设置 __all__ = ['a', 'c'] 可以控制 from 包名.模块名 import * 导入的变量为a和c

5.3 __init__.py的用法

导入包时会自动运行 __init__.py 文件 在 __init__.py 文件使用 __all__ = ['c1'] 可以控制导入的模块为 c1.py

包与模块的几个常见错误:

包和模块是不会被重复导入的

避免循环导入

导入模块时Python会自动执行导入模块里面的所有代码

5.4 模块内置变量

dir()函数返回当前模块所有的变量:

内置变量:

name 是模块的完整名称(包括命名空间)

package 是包名

doc 是模块的注释

file 是当前模块在系统里面的物理路径

不同的运行:

5.5 入口文件

入口文件会导致内置变量的不同

如果一个普通的.py文件被当作应用程序的入口,那么它的变量 __name__ 就不再是本身模块的名称,而是会被强制更改为 __main__

如果一个普通的.py文件被当作应用程序的入口,那么它的顶级是不会再有包的如果一个普通的.py文件被当作应用程序的入口,那么它的变量 __file__ 不再是绝对路径,而是和执行python命名所在目录有关

5.6 __name__的经典应用

使用dir()函数查看模块或类相关的变量:

Make a script both importable and executable if __name__ == "__main__": Python脚本既可以作为一个普通的模块提供给其它应用程序来调用,也可以让它自己成为一个可执行的文件。

__name__的经典应用:

使用 python -m 命令将一个可执行文件当作一个普通的模块:

ps:普通的模块必须要有包

5.7 相对导入和绝对导入

决定顶级包的是可执行文件

绝对导入(绝对路径):

import 顶级包...中间包...模块名

绝对引入一定要从顶级包开始

相对引入:

. 表示当前目录

.. 表示上一级目录

在入口文件中不能进行相对导入: 相对路径之所以能够找到对应的模块,在于根据内置变量 __name__ 来定位。但是由于 main.py 是入口文件, __name__ 被强行改成 __main__ ,但是 __main__ 这个模块不存在,所以在入口文件中不可以使用相对路径来导入模块

6.函数

6.1 认识函数

round()函数用于保留几位小数(自动四舍五入):

如何限制函数递归层数: import sys sys.setrecursionlimit(1000)

如何让函数返回多个结果:

返回元组

序列解包

6.2 序列解包与链式赋值

序列解包(数量要相等):

链式赋值: 将a, b, c = 1, 1, 1改为a=b=c=1

6.3 必须参数、关键字参数、默认参数

1.必须参数——形参、实参 形参:

实参:

2.关键字参数 不用按必须参数的顺序传递,随意顺序

3.默认参数

6.4 可变参数、关键字可变参数

1.可变参数 必须参数必须放在可变参数前面 可以把默认参数放在可变参数后面,然后利用关键字参数传值 使用*a来解包元组:

2.关键字可变参数 传入任意个数的关键字可变的参数:

遍历字典:items

使用**a来解包字典:

ps:什么参数都不传,param 将为空字典

6.5 global关键字

global关键字:声明全局变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值