python学习笔记--python知识汇总 参考:40_Python面试100题-腾讯面试题-90-91题_哔哩哔哩_bilibili一、python基础知识(一)基础语法1.标识符、关键字2.同一行显示多条语句 用;号隔开3.print输出 python3中print默认输出是换行的,如果要实现不换行需要在变量末尾加上 「, end= '’」print(x, end='')(二)基础数据类型 Python基本数据类型一般分为6种:数值(Numbers)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)、集合(Set)。1.数值Python支持四种不同的数值类型:int(有符号整型)float(浮点型)complex(复数)2.字符串字符串的两种取值顺序[头下标:尾下标]获取的子字符串包含头下标的字符,但不包含尾下标的字符。[头下标:尾下标:截取步长]可以使用加号(+)对字符串进行连接,使用星号(*)对字符串进行重复操作。find,rfind,strip3.列表[ ]索引从0开始Python列表脚本操作符Python列表函数方法4.元组( )与列表的区别:元组的元素不能修改,删除,但是可以拼接新的元组和删除整个元组。元组运算符和列表相同元组内置函数5.字典{key1 : value1, key2 : value2}键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。修改键值时可以直接赋值修改,添加时可以直接输入新的键名添加。字典内置函数与方法6.集合可以使用大括号{ }或者set()函数创建集合两个集合间的运算集合内置方法完整列表添加元素:s.add( x ),将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作;s.update( x )可以添加列表,元组,字典等。移除元素:s.remove( x ),s.discard( x )数据类型转换list和tuple属于序列,可以使用下标访问,可以进行切片操作,可以排序。其区别:1、list用[]定义,tuple用()定义2、list是可变容器,可以修改其中的元素,tuple属于不可变容器,不能修改元素。3、tuple属于不可变容器,没有深复制和浅复制,list有深复制和浅复制4、list一般不做函数参数的默认值,tuple可以做函数参数的默认值set和dict不属于序列,无序,不能通过下标访问,但set和dict也有区别:1、dict可以通过key访问,set不行2、dict键不可以重复,值可以重复,set不允许有重复元素3、dict可以根据键修改值,set不能修改元素3.运算符(三)一些语句if语句if 条件: 语句 else: 语句if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……循环语句while循环while 判断条件(condition): 执行语句(statements)……for循环空心等边三角形rows = int(input('输入列数(即三角形的高度):')) for i in range(1, rows + 1): # 从1开始,因为第一行没有前导空格 # 打印前导空格 print(' ' * (rows - i), end='') # 打印星号 if i == 1 or i == rows: # 顶部和底部行 print('*' * (2 * i - 1)) else: # 两侧星号 print('*', end='') print(' ' * (2 * (i - 1) - 1), end='') # 中间空格 print('*')break语句break语句用来终止循环语句continue语句continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环(而break是跳出整个循环)pass语句占位作用:当你编写一个函数或类,但还没有实现具体功能时,可以使用pass语句作为占位符,以避免语法错误。控制流程:在循环或条件语句中,pass语句可以用作空的执行体,使得控制流程继续。(四)函数Python3 函数 | 菜鸟教程 (runoob.com)1.函数的调用 函数名(参数)2.参数传递在 python 中,类型属于对象,对象有不同类型的区分,变量是没有类型的:比如:a=[1,2,3] a="Runoob"[1,2,3]是 List 类型,"Runoob"是 String 类型,而变量 a 是没有类型,它仅仅是一个对象的引用(一个指针),可以是指向 List 类型对象,也可以是指向 String 类型对象。可变更对象和不可变更对象:strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。不可变类型:变量赋值a=5后再赋值a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变 a 的值,相当于新生成了 a。可变类型:变量赋值la=[1,2,3,4]后再赋值la[2]=5则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。python 函数的参数传递:不可变类型:类似 C++ 的值传递,如整数、字符串、元组。如 fun(a),传递的只是 a 的值,没有影响 a 对象本身。如果在 fun(a) 内部修改 a 的值,则是新生成一个 a 的对象。可变类型:类似 C++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后 fun 外部的 la 也会受影响。python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。python 传不可变对象def change(a): print(id(a)) #查看内存地址 指向的是同一个对象 a=10 print(id(a)) # 一个新对象 a=1 print(id(a)) change(a)输出:4379369136 4379369136 4379369424可以看见在调用函数前后,形参和实参指向的是同一个对象(对象 id 相同),在函数内部修改形参后,形参指向的是不同的 id。python 传可变对象可变对象在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。# 可写函数说明 def changeme( mylist ): "修改传入的列表" mylist.append([1,2,3,4]) print ("函数内取值: ", mylist) return # 调用changeme函数 mylist = [10,20,30] changeme( mylist ) print ("函数外取值: ", mylist)传入函数的和在末尾添加新内容的对象用的是同一个引用:输出:函数内取值: [10, 20, 30, [1, 2, 3, 4]] 函数外取值: [10, 20, 30, [1, 2, 3, 4]]3.参数调用函数时可使用的正式参数类型:必需参数、关键字参数默认参数不定长参数4.匿名函数Python 使用lambda来创建匿名函数。所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。5.return语句6.强制位置参数/ 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。def f(a, b, /, c, d, *, e, f): print(a, b, c, d, e, f) #形参 a 和 b 必须使用指定位置参数,c 或 d 可以是位置形参或关键字形参,而 e 和 f 要求为关键字形参(五)面向对象Python3 面向对象 | 菜鸟教程 (runoob.com)基础概念类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。局部变量:定义在方法中的变量,只作用于当前实例的类。实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。实例化:创建一个类的实例,类的具体对象。/

本月热点