1.str内置函数
查找类
str.find
str.index
都是用来找str中是否存在某个字符串
区别:str.find 没找到返回值为-1,str.index没找到返回ValueError,程序报错。
str.rfind/str.lfind:从右查找,从左查找。
类型判断类
判断字母
str.isalpha
判断数字(能不用就不用,找数字用正则)
str.isdigit:
str.isnumeric
str.isdecimal
判断大小写(汉字无大小写概念)
str.islower/str.isupper
内容判断类
startswith/endswith:是否以xxx开头或结尾
操作类
str.format:格式化,print("{}".format(a))
str.strip:默认删除的是字符串两侧的空格,包含lstrip/rstrip
str.strip('a')可以指定删除‘a’,不是单独一个字符,是整个字符串。
str.join:拼接字符串,s1 = '$',s1.join(ss),ss为列表,意义是将ss中的各个元素以s1的字符拼接。
2.python内置数据类型
List
L1=[1,2,3,"HHH"] 不限类型直接创建;L1=list(s),会将s字符串拆分成单个字符并形成列表。
切片操作
L2 = L1[0:4],左包括,右不包括;L2生成的是新列表,可通过id查询验证,L2为新。
L2 = L1[:4]:从头
L2 = L1[2:]:到尾
L1[::2]:增长步长为2,步长为负数,表示顺序从右往左(-1为右边第一个)
Tuple
a = (1,2,3)
li = [1,2,3,"zlh"]
tu = tuple(li)
与List特征相似
有序
可以访问不可修改
元素任意类型
tuple特殊用法
a = 100
b = "zlh"
a, b值互换位置: a,b = b, a python独有
Set
sc = {1,2,3,5,6,1,2}
无序
不存在重复元素
for循环:sd = {i**2 for i in sc} 取平方输出
可以做数学运算,差集:difference、并集:union、交集:intersection等
冰冻集合:sb = frozenset(sc),和集合区别不大,不可修改无写操作。
Dic
dic = {'james':98,'job':78}
key-value
dic.items():同时迭代key和values
内置函数
help/type/id/print/len/max/min/count/index/clear/remove/discard等
id可以查询是否指向同一内存,不是数值相等。
remove/discard:都是删除集合set中元素,remove没有可删的报错,disacard不管,有删无则继续。
3.类
类方法的定义,括号内不带self,无法访问实例的内容,即无法使用self.xxx
class Student:
name = zlh
age = 20
def sos():
return None
类方法可以调用类的变量
print("{},{}".format(Student.name, __class__.age)) # 两种表示类的形式都可以。
构造函数
类在实例化时,执行基础性初始化操作。第一个自动执行的函数,且类的形参在构造函数中定义。
def __init__(self): # 一定有self
def __init__(self, a, b):a,b为类的参数,在实例化时要给定实参。
面向对象
继承
封装
多态
继承
所有类都必须有一个父类
子类可以有多个父类
issubclass(a,b) :检测a是否是b的子类
super().run():即可直接在子类中调用父类的方法
封装
类的封装两个层面
第一个层面的封装:类就是一个容器,这本身就是一种封装
第二个层面的封装:类中定义私有的属性,只在类的内部使用,外部无法访问
约定.任何以双下划线“__”开头的名字都应该是类内部私有的属性,外部无法访问。(实际上也可以访问,前面加上“_类名”)
多态
调用不同的类实例化的对象下的相同方法,实现的过程不一样。