python学习Day5 几种数据类型的使用
今日内容
数据类型分类: int | complex | float | str | bool | list | dict | tuple | set
3种数据类型的方法:(数字、字符串、列表 )
可变与不可变:不可变:地址不变,值可变 (字符串类型、数字类型)
可变: 地址不变,值可变 (列表)
数字类型:int(整型), float(小数)、布尔、 复数(py2还有long整型 )
这些数字类型的加、减、乘数学运算
数字类型之间可直接相互转换:int()、float() 、bool() (在while、if 条件后可自动转为bool值:True、Flase)
字符串类型 :单双三引号定义,嵌套的定义方法,自向右一 一对应,单双三组合。
通过引号嵌套,可以不在转义的情况下直接输出。转义(\n:换行 | \r:回车 | \t: tab)
常规操作:索引取值、拼接、计算字符长度、切片、字符串循环(遍历)、遍历
1.索引取值:,字符串[index] 正向取值从0编号,反向取值从-1编号
字符存储,字符串中每一个item在内存中都会单独存一个地址
s1 = '123abc呵呵'
print(id(s1)) # 2217572683576
print(s1[0], id(s1[0])) # 2217543167200
t_s = '1'
print(id(t_s)) # 2217543167200
# 取出c
print(s1[5], s1[-3])
2. 字符串的拼接,相当于相加,两种方式:%s 万能占位符(无需考虑数据类型),
将非str类型转换为str类型
3. 计算字符长度len() 、
4. 字符串切片,也可反向切 sub_s = s4[-1:-6:-1]
5. 成员运算:item in 字符串,返回 False、True
s5 = '123abc呵呵'
ss5 = '12a'
print(ss5 in s5) # False
print(ss5 not in s5) # True
6.字符串循环(遍历)
重要方法:1.返回目标索: 引(目标字符串的索引位置),字符串变量名.index(item), item为目标字符
2.去留白(默认去两端留白,也可以去指定字符):s2.strip(" * ")
3.计算子字符串个数: s3.count('123')
4.判断字符串是否是数字: s4.isdigit() 只能判断正整数 ,返回True、Flase
5. 大小写转换
s5 = "AbC def"
print(s5.upper()) # 全大写
print(s5.lower()) # 全小写
# 了了解
print(s5.capitalize()) # 首字母大写
print(s5.title()) # 每个单词首字母大写
6. 判断以某某开头或结尾 :.startswith、.endswith
s6 = 'https://www.baidu.com'
r1 = s6.startswith('https:')
r2 = s6.startswith('http:')
r3 = s6.endswith('com')
r4 = s6.endswith('cn')
if (r1 or r2) and (r3 or r4):
print('合法的链接')
else:
print('非合法的链接')
7.替换 .replace(“被替换的”, '新值') # 默认替换所有,可以设定替换个数 .replace('egon', 'Liu某')
8. 格式化 .format 标注位置,一个值可以多次利用 | 指名道姓
#### 了了解
```python
'''
1. find | rfind:查找子字符串索引,无结果返回-1
2. lstrip:去左留白
3. rstrip:去右留白
4. center | ljust | rjust | zfill:按位填充
语法:center(所占位数, '填充符号')
5. expandtabs:规定\t所占空格数
6. captialize | title | swapcase:首字母大写 | 单词首字母大写 | 大小写反转
7. isdigit | isdecimal | isnumeric:数字判断
8. isalnum | isalpha:是否由字母数字组成 | 由字母组成
9. isidentifier:是否是合法标识符
10. islower | isupper:是否全小 | 大写
11. isspace:是否是空白字符
12. istitle:是否为单词首字母大写格式
列表类型 定义:可以存放多个值,可以存放所有类型的数据, list中有序的,可以通过索引取值
常规操作: 索引取值、 列表运算: 得到的是新list、list的长度、切片、成员运算:in、循环
增删改查 :增 .append(末尾) 、 .insert(1, 666) # 任意index前增、.insert(len(ls), 888) # insert实行末尾增
删 .remove(888)删指定元素、.pop() # 默认从末尾删,并返回删除的值、.pop(1) # 从指定索引删除,并返还删除的值
了了解 :.del | .clear | 排序.sort() # 默认正向排序 | .sort(reverse=True) # 正向排序结果上翻转,形成倒序 | .extend('123') 整体增加,添加到末尾
目标的索引位置,可以规定查找区间 .index(1, 3, 6) .index(value, start=None, stop=None)
del ls[2]
print(res, ls)
# 清空
ls.clear()
print(ls)
#### 了解的方法
```python
# 1)排序: 针对于同类型
ls = ['3', '1', '2']
ls.sort() # 默认正向排序
print(ls)
ls.sort(reverse=True) # 正向排序结果上翻转,形成倒序
print(ls)
# 2)翻转
ls = ['3', '1', '2']
ls.reverse() # 按存储的顺序进行翻转
print(ls)
# 3)计算值的个数 => 列表中可以存放重复数据
ls = [1, 2, 1, 2, 3, 1]
print(ls.count(1)) # 对象1存在的次数