python学习笔记(第一周)
str内置函数
查找类函数
- 字符串查找类, find, index, islower
- find: 查找字符串中是否包含一个子串
- index:跟find唯一区别是没找到时会报错或者引发异常
- rfind, lfind:从左开始查找或者从右开始查找
判断类函数
- 此类函数的特点一般都用is开头,比如islower
- isalpha: 判断是否是字母,需要注意的是两点:
- 此类函数默认的前提是字符串至少包含一个字符, 如果没有,同样返回False
- 汉字被认为是alpha,所以,此函数不能作为区分英语字母还是汉字的标识,区分中英文使用Unicode 码。
- 注意使用区别,防止被坑
- isdigit, isnumeric, isdecimal 三个判断数字的函数,有区别,尽量减少使用,判断数字建议采用正则表达式
内容判断类
-
startswith/endswith: 是否以XXX开头或者结尾
- 检测某个字符串是否以某个子串开头,常用三个参数
- suffix: 被检查的字符串,必须有
- start: 检查范围的开始范围
- end: 检查范围的结束范围
-
islower/isupper: 判断字符串是大写还是小写,空格不会影响结果
-
汉字字符串没有大小写概念
操作类函数
-
format: 格式化用的
-
strip: 删除字符串两边的空格 还有lstrip rstrip
-
join: 对字符串进行拼接。
c = "DDDnana love xiaojing"
# 是否成功删除两边空格不能观察出来
print(c.strip())
print(c.strip('D'),end = '____')
DDDnana love xiaojing
nana love xiaojing____
dana = "Liu Dana"
xiaojing = "Xiao jing"
s = "Liu Dana really love wang Xiao jing"
print(s.startswith(dana))
print(s.endswith(xiaojing))
True
True
s = "Liu Dana love Wang xiaojing and Zhangxiaojing"
s1 = "xiaojing"
# 返回第一次发现这个字符串的位置
s.find(s1)
# 返回-1表示没有找到
s2 = "wanwan"
s.find (s2)
s.index(s1)
# 报错或者引发异常表示没有找到
s.index(s2)
# 使用的时候还可以使用区间
s = "Liu Dana love Wang xiaojing and Zhangxiaojing"
s1 = "xiaojing"
# 从下标20开始查找,看能否找到
s.find(s1,25)
37
声明的三种格式
格式1
s1 = “我爱王晓静”
格式2
s2 = s1 = “I Love Wangxiaojing”
格式3
s1, s2, s3 = " i love wangxiaojing",“我爱北京图灵学院”, “爱生活,爱图灵”
注意中英文符号不能混用
变量类型
- 严格意义上讲python只有一个变量类型
- 标准数据类型六种
- 数字 Number
- 字符串类型 str
- 列表 List
- 元祖 tuple
- 字典 dict
- 集合 set
str 内置函数和列表
数据类型 Number
- python 中的数字没有大小限制
常见数字分类
-
整数
- 没有小数部分
- 包含整数,负数,0
- 二进制
- 只有0 1
- 以0b开头的01串
- 例如:
- 0b110
- 八进制
- 以0b开通
- 例如
0o71
- 十六进制
- 以0x组成的由0-9,a-f 构成的串
-
浮点数
- 就是通俗意义上的小数
- 常见案例
- 3.14
-
- .4
-
科学计数法
- 定义和数学一致
- 写法就是e后面跟整数来表示10的指数
-
复数 complex
- 与数学定义一致
- 复数的虚部用i/J表示
- 例如
- 5+4i
- 4j
-
布尔值
- 用来表示真假的值
- 只有两个值True/False
- 在python中,可以当做数字使用,True=1/False=0
- 如果数字当做布尔值使用,0=False,其余当做True
age = 18 + True
print(age)
age =18 + False
print(age)
19
18
字符串 str
- 表达文字的内容,例如:“我爱王小静”
- 形式上是引号引起来的一段内容
- 单引号’ ’
- 双引号" "
- 三引号,可以用来表示多行信息""" “”"
- 单双引号含义一致
None 类型
- 表示没有,通常用来占位
- 比如返回,用来表示一个空
表达式
- 由一个或者几个数字或者变量或者运算符合成第一行代码
- 通常返回一个结果
运算符
- 由一个以上的值经过一系列的运算得到新值的过程就叫运算
- 用来操作运算的符号叫运算符
- 运算符分类
- 算数运算符
- 比较或者关系运算符
- 赋值运算符
- 逻辑运算符
- 位运算
- 成员运算符
- 身份运算符
算数运算符
- 用来进行算数运算的符号
- 通常用来表示加减乘除
- python没有自增自减运算符
# python的除法分为普通除法,地板除,取余
# 正常除法
a = 9 / 2
print(a)
# 地板除,取整
a = 9 // 2
print(a)
#取余
a = 9 % 2
print (a)
# 除以负数的结果,参考余数的定义
a = 9 % -4
print(a)
#(9-(-3)) / -4 = -3 余 0,所以得到 -3
# 两个**就是指数
a = 7 ** 2
print (a)
4.5
4
1
-3
49
比较运算符
- 对两个内容进行比较
- 结果一定是布尔值,即 True/False
- 等于 ==
- 不等于 !=
- 其他的例如大于小于
赋值运算符
- 把一个值放到变量里面去
- 符号 =
# 赋值符号
a = 9
# 复杂赋值
a = b = 9
a,b = 1,2
# 赋值的缩写
cc = 1
cc = cc + 3
print(cc)
cc += 3 # 相当于cc = cc + 3
print(cc)
# 所有数学数学运算符都可以缩写
# -=, *=, /=, //=, %=, **=, 都是缩写形式
# python 没有 ++,--
4
7
逻辑运算符
- 对布尔类型变量或者值进行运算的符号
- and: 逻辑与
- or: 逻辑或
- not 逻辑非
- python 里面的逻辑运算没有异或
- 运算规则
- and 看作做乘法, or看作做加法
- True看作1, False看作0
- 逻辑运算能转换成整数数学运算
- 最后结果如果是0则为False ,否则为True
- 逻辑运算的短路问题
- 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回
布尔值跟数字的转化
- 数字转换成布尔值的时候: 0 = False , 其余是True
- 布尔值转换成数字的时候: True = 1 ,False = 0
# 短路问题案例
a = True
b = True
c = False
aa = a or b and (a and b)
print(aa)
True
成员运算符
- 用来检测一个值或者变量是否在某个集合里面
- in 成员运算符
- not in: 不在里面的意思
身份运算符
- 用来确定两个变量是否是同一变量
- is :变量运算符
- is not :不是
- a,b 仅仅是值一样,并不代表a,b是一个变量
# a,b 仅仅是值一样,并不代表a,b是一个变量,把a,b看作C语言中的地址
a = 111111
b = 111111
aa = a is b
print(aa)
# 正确理解下面案例和上面案例的不同
# 小一点的数字不需要开辟内存空间(-5 ——256),解释器对它们做了单独处理
a = 4
b = 4
aa = a is b
print(aa)
False
True
运算符优先级问题
- 小括号具有最高优先级
- 指数 位 乘除 加减 《》右移左移运算符 比较 等于 赋值 身份 成员 逻辑