python全栈工程师学习笔记:基础语法篇(一)

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():即可直接在子类中调用父类的方法

封装

类的封装两个层面

第一个层面的封装:类就是一个容器,这本身就是一种封装

第二个层面的封装:类中定义私有的属性,只在类的内部使用,外部无法访问

约定.任何以双下划线“__”开头的名字都应该是类内部私有的属性,外部无法访问。(实际上也可以访问,前面加上“_类名”)

多态

调用不同的类实例化的对象下的相同方法,实现的过程不一样。

猜你喜欢

转载自blog.csdn.net/qq_32301683/article/details/103556523