Python常用知识点总结

版权声明:(欢迎转载,转载请注明出处。技术交流:[email protected]) https://blog.csdn.net/Yasin0/article/details/83316794

与其他语言不同,Python是利用缩进来组织代码的,而不是使用大括号;Python可以不使用分号结尾,也可以使用分号,在一行内将多条语句之间进行分割,如:a = 5; b = 6; c = 7;

1.字符串

在Pyhton中,用引号括起来的都是字符串,其中引号可是单引号,也可以是双引号。对于含有换行的多行字符串,可以使用三个单引号'''my_string'''或者三个双引号"""my_string"""

Python字符串是不可变的,无法修改一个字符串;

1.1使用方法修改字符串的大小写

将每个单词的首字母都改为大写:my_string.title()

将字符串全部改为大写或小写可以分别用:my_string.upper(),my_string.lower()

Python使用 + 来合并字符串

1.2使用制表符或换行符来添加空白

反斜杠\是一种转义符号,要在字符串中写反斜杠需要将其转义:s = '12\\34';print(s);    #输出为:12\34

在字符串中添加制表符,可以使用 \t

在字符串中添加换行符,可以使用 \n

1.3删除空白

删除字符串开头的空白:new_string = my_string.lstrip()

删除字符串末尾的空白:new_string = my_string.rstrip()

删除字符串两端的空白:new_string = my_string.strip()

注意:进行删除空白操作后一定要将处理后的字符串赋值给新变量保存,因为删除空白不会保存在原字符串上操作。

1.4使用函数str()避免类型错误

age = 23

在使用 + 进行字符串拼接时会报错,此时应该讲age转换为字符串变量,str(age)。

1.5字符串格式化

字符串拥有一个format方法,可以用来代替字符串中的格式化参数,并产生一个新的字符串:

format方法与%占位符的对比:

2.列表

列表是由一系列元素按照特定顺序排列的数组(其中元素可以是同种类型的也可以是不同类型的)。

元组是不可改变的列表。虽然不能修改元组的元素,但可以个存储元组的变量重新赋值。

2.1在列表中添加元素

在列表末尾添加元素:my_list.append(element)

在列表中插入元素:my_list.insert(index,element) 这种操作将列表中既有的每个元素都右移一个位置

list.append(object) 向列表中添加一个对象object(可以是字符串,列表,元组,字典或者是单个元素)
list.extend(sequence) 把一个序列seq的内容添加到列表中

1

2

3

4

5

my_list= ['a''b''c']

new_list = ['d''e']

my_list.append(new_list)

print my_list

>>>['a''b', 'c', ['d''e']]

使用append的时候,是将new_list看作一个对象,整体打包添加到my_list对象中。

1

2

3

4

5

my_list= ['a''b''c']

new_list = ['d''e']

my_list.extend(new_list)

print my_list

>>>['a''b', 'c', 'd''e']

使用extend的时候,是将new_list看作一个序列,将这个序列和my_list序列合并,并放在其后面。

2.2在列表中删除元素

直接删除列表中指定位置的元素:del my_list[index] 

方法pop()可删除列表指定位置元素,并可以直接使用它:my_element = my_list.pop(index),未指定index时,删除的是列表末尾元素。

根据值删除元素:my_list.remove(element),但方法remove()只能删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

2.3组织列表

对列表进行永久性排序:my_list().sort(),此时my_list()已经改变,如果想要逆序排列的话可以传递参数reverse=True。

对列表进行临时排序:new_list = my_list.sorted(),此时my_list()并未改变,新列表new_list为排序后的列表,如果想要逆序排列的话可以传递参数reverse=True。

反转列表元素的排列顺序:my_list.reverse(),此方法可以永久性修改列表元素的排列顺序,若想恢复的原来顺序,可再次调用该方法。

反转列表和元组还可以使用:将切片的步长设置为-1。如:my_list[::-1],即可实现反转。

确认列表长度:len(my_list)

2.4创建数值列表

range函数返回一个迭代器,该迭代器生成一个等差整数序列,其可以传入三个参数:起始终止(不包括),步长(可以为负)

range()可以生成一系列的数字,只传入一个参数N时,默认产生的数字从0到N-1;传入两个参数N,M时,产生从N到M的数,包括N,但不包括M(步长为1,前闭后开);传入三个参数时,第三个参数为步长,可以指定步长的方向,N,M,-,2,即产生从N到M的步长为-2的数(8,6,4,2)。

2.5对数字列表执行简单的统计计算

找出列表中的最小值:min(my_list)

找出列表中的最大值:max(my_list)

求出列表数字总和:sum(my_list)

2.6复制列表

  • new_list = my_list[ : ]

注意:在Python中对一个变量赋值时,你就创建了一个指向等号右边对象的引用。new_list = my_list这种方法并不能复制列表,因为这只是相当于给my_list起了个新名字叫new_list,两个变量其实指的是同一列表,并没有创建新的列表。

  • list()

3.控制流

使用continue关键字可以跳过continue后面的代码进入下一次循环

终止循环用break,多个循环嵌套时,break关键字只结束最内层的循环,外层的循环会继续运行;

pass是Python中“什么都不做”的语句,或者是作为还没有实现的代码占位符;

3.1 for循环一般用作循环次数已知的任务

for 变量 in range(begin, end) :   前闭后开

for 变量 in my_list:

3.2 while循环一般用作不可预知循环次数的任务

while 条件:

3.3 if、elif和else

一个if语句可以接多个elif代码块和一个else代码块,如果if与所有的elif条件均为False,则执行else代码块,如果某个条件为True,则后面的elif和else代码块则不会执行。

4.类、对象和面向对象编程

类是用来描述具有相同属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,类是可实例化出对象的模具。

面向对象:程序员反复修改优化类,类实例化出对象,对象调用类里的函数执行具体的操作。

使用isinstance函数来检查一个对象是否是特定类型的实例:a = 5; isinstance(a, int); # 返回 True

isinstance接受一个包含类型的元组,可以检查对象的类型是否在元组中的类型中:a = 5;isinstance(a, (int, float));  # 返回 True

4.1类的定义

5.文件操作

5.1文件写操作

import pickle

开:文件变量 = open('文件路径文件名', 'wb')

存:pickle.dump(待写入的变量, 文件变量)

关:文件变量.close()

5.2文件读操作

import pickle

开:文件变量 = open('文件路径文件名', 'rb')

存:pickle.load(待写入的变量, 文件变量)

关:文件变量.close()

53.异常

结束操作或者文件打开异常时需要将文件资源释放回操作系统:

一种简单的操作是使用with语句,使用with语句,文件会在with代码块结束后自动关闭:

6.其他

6.1二元运算符合比较运算

所有可用的二元运算符:

检查两个引用是否指向同一个对象可以使用is/is not关键字

6.2日起和时间

请参考《利用Python进行数据分析》第2.3.2.7小节

6.3三元表达式

value = a if condition else b 如果满足condition条件则将a赋值给value,否则将b赋值给value

7.访问控制

注意:Python中虽然没有访问控制的关键字,例如private、protected等等。但是,在Python编码中,有一些约定来进行访问控制

单下划线、双下划线、头尾双下划线说明:

_foo:单下划线开头表示的是protected类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

__foo:双下划线表示的是私有类型(private)的变量,只能是允许这个类本身进行访问了

__foo__:头尾双下划线定义的是特列方法,类似_init_()之类的

.1、简单地理解Python中的if __name__ == '__main__'

通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')

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

7.2、Python中__new__和__init__区别

  • __init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值,无返回值。
  • __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法,有返回值。

即,__new__在__init__之前被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。

猜你喜欢

转载自blog.csdn.net/Yasin0/article/details/83316794