python基础知识

 operator

collection   

103. 文件名称字符串的注意事项

102 . file.truncate()  用法

truncate() 方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符

 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除

101.import ... 和 from  ... import ...的区别

区别1: 

  • mport 模块:导入一个模块;注:相当于导入的是一个文件夹,是个相对路径。
  • from…import:导入了一个模块中的一个函数;注:相当于导入的是一个文件夹中的文件,是个绝对路径

区别2: 调用模块属性时是不一样的

区别3:

  •  from 模块 import * : 导入模块时,会跳过私有属性;
  •  import 模块 : 通过引用可以访问私有属性

100.  类相关的内容

python---私有属性_python私有属性-CSDN博客

类方法使用@classmethod装饰,第一个参数为类(cls),调用时可以通过类的实例或者类本身来调用。

静态方法使用@staticmethod装饰,调用时可以使用类的实例或者类本身来调用。

实例方法定义时第一个参数为类的一个实例(self),调用时必须通过实例调用。

__new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供

__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类__new__出来的实例,或者直接是object的__new__出来的实例

__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值

我们可以将类比作制造商,__new__方法就是前期的原材料购买环节,__init__方法就是在有原材料的基础上,加工,初始化商品环节

99.  理解 __name__ == '__main__'

假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')。

if __name__ == '__main__'的意思是:当 .py 文件被直接运行时,if __name__ == '__main__' 之下的代码块将被运行; 当 .py 文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行

98. __init__.py 文件的作用

Python 模块下 __init__.py 文件_python init.py-CSDN博客

97. re模块 

1.group和groups的区别:

n.group(N)返回第N组括号匹配的字符

n.group()==n.group(0)==返回所有匹配的字符

n.groups() 返回所有括号匹配的字符,以元组格式,没有子组的时候将返回 空元组

示例:

具体可见:https://blog.csdn.net/dingding_12345/article/details/52317476

2.re.match() :返回匹配的match对象,默认从给定字符串的开头开始匹配,即使正则表达式没有用^声明

match的属性:

.string 待匹配的文本

.re 匹配使用的pattern 对象

.pos 正则表达式搜索文本的结束位置

.endpos 正则表达式搜索文本的结束位置

具体见:https://blog.csdn.net/mmp591/article/details/78585244

3.re.search():返回匹配的match对象

search和match的区别:match函数是只检测re是不是在string的开始位置匹配,search会扫描整个string查找匹配,会扫描整个字符串,并返回第一个成功的匹配

4.注意点号 . 是不匹配换行符号\n 和非字符的,在确实要匹配. 号的时候,要使用\进行转义

5.简单的电子邮件的正则表达式: \w+@\w+\.com

6.匹配边界:\b \B  可以以border来记忆

举例:

\b 可以匹配单词边界,例如 'er\b' 可以匹配 nerver中的er。但是不能匹配 verb中的er

\B 匹配非单词边界。例如 'er\B' 可以匹配 verb中的er,但是不能匹配nerver中的er

7.findall()返回列表。如果findall没有找到匹配的部分就返回一个空列表,但是如果匹配成功。列表将包含所有成功的匹配部分

8.\s 是指空白,包括空格,换行,tab缩进等所有空白,而\S相反

9.findall和finditer

具体见:https://blog.csdn.net/wali_wang/article/details/50623991

10.sub和subn 实现搜索和替换的功能

其语法: re.sub(pattern, repl,string[, count])使用repl替换string中每一个匹配的子串后返回替换后的字符串,count用于指定最多替换次数,不指定时全部替换

re.subn(pattern,repl,string[, count])

其返回的是 sub(pattern, repl,string[, count]),替换次数

11.split()分割字符串

str.split()不支持正则和多个切割符号,不感知空格数量

12.扩展符号

具体见:https://blog.csdn.net/oliverkingli/article/details/78990912

13.  \s\s+ :表示的是至少拥有两个以上的空白符

96.map 函数

基本语法: map(function, iterable) 

numbers = [1,2,3,4,5]
squared = list(map(lambda x:x**2 , numbers))

对序列iterable中的每一个元素都调用function函数返回一个map对象实例

这个map对象实际就是个迭代器

filter函数

基本语法 filter(function, iterable)   

numbers = [1,2,3,4,5]
squared = list(filter(lambda x :x**2 >9 , numbers))

reduce函数

基本语法:reduce(function, iterable[, initializer])

sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5])   # 使用 lambda 匿名函数

返回列表和:1+2+3+4+5 

95.  使用小括号包裹推导式会生成生成器对象,而不是元组

94.   构造函数dict() 可直接从元组列表中构建字典

93. reversed 和 reverse的区别 

reversed 返回的是个迭代器,需要使用 迭代,list,next() 来获取值

reverse是list的内置方法,只有list可以用

python中reversed与reverse的区别解析_python_脚本之家

92.  列表适合做堆栈(后进先出)

列表不适合做队列  (先进先出) , 但是可以是用 collections.deque 双向队列来进行处理,

91. 全局变量,局部变量 :百度安全验证

全局变量: 在函数外声明的变量, 可以在全局代码进行访问

局部变量: 在函数内创建的变量 ; 当在函数内创建的变量,就是局部变量,不能在函数之外使用此变量。但是,我们可以使用 global 关键字在函数中创建全局变量   ,如要函数内修改全部变量,用global声明就不会报错

a = 10
def sum ( n ) :
   global a   # global声明全局变量,必须在引用变量前声明,否则报错
   n += a
   a = 11 
   print ('a = ', a, 'n = ', n )    # 最终输出a =  11 , n =  13
 
sum ( 3 )
print ('外 a = ', a)  # 最终输出  a =  11   

1.内部函数,不修改全局变量可以访问全局变量

2.内部函数,修改同名全局变量,则python会认为它是一个局部变量(同教程最后一个例子),会报错

90. 函数的参数类型:

必需参数

默认参数 

关键字参数

不定长参数 : 

---加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数; 如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量

---加了两个星号 ** 的参数会以字典的形式导入 

---单独出现星号 * 后的参数必须用关键字传入

89. items() 输出字典的键对值

 enumerate()  输出列表的 下标和值 

zip()  遍历两个或者更多个序列

88. dict.get()  和dict.setdefault() 的区别: 

相同的地方: 看key是否在 该字典中,没有的话,就赋默认值; 

不同: setdefault() 会修改原列表的值 

87.字典

  • 删除

del tinydict["adress"] # 删除单个元素

tinydict.clear() # 清空字典

del tinydict # 删除字典

86.元组相关内容

创建空元组: tup1 = ()

元组中只包含一个元素时,需要在元素后面添加逗号 , ,

否则括号会被当作运算符使用 

:tup = (50, )

 元组也可以以下面的表达方式: 

 tup3 = "a", "b", "c", "d"    #  不需要括号也可以

tuple(iterable) 将可迭代系列转换为元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改

元组的元素值不可修改,但是可以对元组进行连接组合

元组的元素值不可修改,但是可以通过del 来进行删除

元组的不可变指的是元组所指向的内存中的内容不可变

t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

元组的不可变性是指元组所指向的内存中的内容不可变,而不是指元组中的元素引用不可变。元组可以通过索引访问其元素,但不能对这些元素进行添加、删除或修改操作

85.通过列表切片方式复制列表, 为不同的两个地址

a = [1,2,3,4]

 a_1 = a[:]

84.使用int函数转化二进制

b = "1"
bs_len = len(b)
while bs_len < 9 :
    b_b = b.ljust(8,"0")
    d = int(b_b,2)
    print(f"二进制 {b_b} 相当于{d}")
    b = b + "1"
    bs_len = bs_len+ 1

83. join的使用

82.随机数函数

81. 内置函数 

  • repr :  返回对象的string格式

Python repr() 函数 | 菜鸟教程

  • dict :  用于创建字典
class dict(**kwarg) 关键字 
class dict(mapping, **kwarg) 映射
class dict(iterable, **kwarg) 可迭代对象 

  •  chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符

80.基本数据类型

  • 注意: 创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
  • 集合可以进行运算
  • 集合与字典

无序:集合是无序的,所以不支持索引;字典同样也是无序的,但由于其元素是由键(key)和值(value)两个属性组成的键值对,可以通过键(key)来进行索引

元素唯一性:集合是无重复元素的序列,会自动去除重复元素;字典因为其key唯一性,所以也不会出现相同元素

79. 浮点型转为整型的方式

python浮点数转换为整数_mob649e815b5994的技术博客_51CTO博客

int : 直接舍去小数部分

round: 四舍五入  ,第一个参数是数值,第二个参数是 要保留的位数

math模块: math.floor 向下取整, math.ceil 向上取整, math.trunc 直接保留整数部分 

78 .  当字符串内容为浮点型转化为整型,需要先转化为 float 再转int型 

77.  #!/usr/bin/python3

第一行注释标的是指向 python 的路径,告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器

76.input函数 

75.多行语句 : 在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \

74.  unicode , utf-8 的关系

73. 输出不换行

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":

72. 转义符

71.使用斜杠\ 可进行连接 

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \

70.python标准库和第三方库的区别

Python标准库是内置在Python解释器中的,不需要额外安装。而第三方库需要使用pip等包管理工具进行安装

69. python编码规范

python-33-python编码规范-CSDN博客

在python2中的文件中如果要填写中文,必须要加一行代码用来声明文件编码的注释,否则python2会报错,因为它默认的编码格式是ASCII。而在python3中已经没有这个问题了,python3默认的文件编码是UTF-8

-----------------------------------

68.字符串:in ,find, index ,rfind ,count

- rfind :  输出的是最右侧的匹配到的单词的索引

- find 和index的区别:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值