提桶跑路之Python基础:序列、字符串、字典、集合、身份运算符、是否可变对象

字符串定义:单、双引号和三引号(可换行),换行符\n    但三引号一般是用来注释,用单、引号进行定义

序列类型:指的是有序的排列(字符串,列表,元祖)。判断是否是序列类型:看他有没有顺序,能不能通过下标取值,能就属于序列类型,字典不是,集合也不是

字符串:str1='hello world'

str1[0]

'h'

字符串能进行下标取值,也能进行切片(左闭右开)

字符串不可以修改

str1[0]='a'(列表可以直接修改,字符串会报错)

实在要改,就用str.replace('h','a'),第一个参数写的是你要替换哪个字符,第二个参数是你要用哪个去把前面的提换下来,只要满足条件就会进行替换,不管你有多少个重复的,也可以选择替换1个或多个,替换的方向是从左往右。替换得到的是新的字符串,原子符串不会修改 replace('l','p',1)第三个参数值的数字表示替换几次字符watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 str2.upper() 大写

str2.lower()小写

str2.capitalize  首字母大写

str2.tile()  每个单词的首字母大写,标题形式

str2.strip() 去除左右两边的空格

str2.lstrip() 去除左边空格

str2.rstrip() 去除右边的空格

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

字符串的切割   可以切割文章里面的每个单词,或者是获取特定的数据也可以进行切

split() 是将字符串变成列表

默认以空格来作为切割符(分割符),切割后的元素放在列表中

可以指定切割符号(也可以用这个字符串当分割符)split('o'),也可以指定切割次数split('o',2)

join()拼接,是将列表变回字符串。把处理完的数据,重新拼接起来,拼完之后是一个字符串

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 字符串的查找

index() 根据元素名称查找元素的索引位置,不能获取全部的,想要做到就得循环

str1.index('0',8)数字表示开始查找的位置

找不到元素会报错,程序一旦报错,后面的代码都不会运行

str1.find('0',25) 根据元素名称,查找对应元素的下标位置,找不到,不会报错,返回负一,-1表示没有这个元素watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

在交互模式下写一行代码,回车,能得到一个数据的结果,这种表示存在返回值,有返回值的才能通过变量接收,无返回值的不能通过变量接收,也不能打印。有返回值的能通过变量接收,也能打印

li.sort()是更改原列表的排序,并且方法是从小到大排序的

sorted(li)是临时排序,原列表不发生任何改变,有返回值,可以通过变量接收

'  '.isalpha()判断字符串是否全由字母和中文组成

'  '.isdigit()判断是否全是数字组成

'  '.isupper()判断是否全是大写

'  '.islower()判断是否全是小写

字符串的转义(反斜杆\+字母)

字符串的转义,在print()里面才有用

\n  换行符

\t 水平制表符,可以实现对齐,八个字符八个字符实现对齐watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

下面三个在交互模式下解释不出来,只有在cmd里面才能解释出来watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

\b往前退一格,相当于退格键,吞掉\b前一个,后面往前跟进

\a系统提示音

\0产生一个空格

\取消字符串的转义

r统一取消转义(在路径里面用得比较多)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

遇到乱码,怎么让他不乱码,让他换成我们能看懂的代码,那就要用到编码和解码方式

str='安言'

str1.encode ( encoding='utf-8'编码的时候要设置他的编码规则是什么)

bxnxbhxbxbdbxb编码后,原本中文,变成看不懂的形式。原字符串没发生任何改变

把编码以后的内容进行解码

str2=str1.encode ( encoding='utf-8'编码的时候要设置他的编码规则是什么)

str2.decode()

'安言'

encode() 编码,默认以utf-8编码格式

decode() 解码,默认以utf-8格式解码

用什么方式编码,就要用什么方式解码,不然会出现乱码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 在后面学到文件操作时,中文(如果是英文还能全部读取到)需要设置编码格式才能读取文件里面的内容。不管操作什么东西,都设置一个编码格式比较好,不然乱码都不知道是什么情况,包括后面爬取代码,和存储内容,不管是存储数据还是获取数据,最好设置他的编码和解码的方式,这样会防止你数据的错乱

字典 {} dict 以键值对形式实现一一对应

字典没有顺序,不能通过下标取值属于散列类型

可迭代对象跟顺序是没有关系的

键是不可变数据类型

dic={'a':1,'b':2} 冒号前面的是键,后面的是值,不同的键值对,通过逗号隔开,键和值通过冒号连接,不同的元素通过逗号隔开

dic['a']  通过键取值,键是唯一的watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 字典的定义方式

1.dic1={} 空字典

2.dic2={'a':1,'b':2}  常规定义

3.dic3=dict(a=1,b=2)通过dict函数定义,它的键就一定要是字符串,并且不要带引号去写,它会默认转为字符串

字典的增删改查

查  通过键(key)取值( value)键不存在会报错

1.dic['name']

get() 不存在则返回None

2.get(key,自定义的数据) 不存在则返回自定义的数据

setdefault(键,值)  键无则增,有则查

字典通过for循环迭代时,也是通过键进行迭代

列表是通过下标

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

赋值语句 无则增,有则改

update() 可以实现批量添加,无则增,有则改

注意批量时,里面用的是花括号,且有冒号的形式

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 删

pop(key)  根据键删除对应的键值对

dic.popitem() 在3.6之后,根据添加进去的顺序进行删除,先添加的后删除,后添加的,先删除

clear()清空字典所有数据

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

keys()获取所有的键

values()获取所有的值

items() 获取所有的键值对 每一个键对放元祖里,元祖不可更改

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 集合{} set 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

空集合 set()

set1=set()

集合里面的数据具有唯一性,会自动去重,集合无序,不能通过下标取值

集合的运算

& 交集,两个集合中相同的元素

|(删除键的下面)  两个集合的元素合并在一起

-差集,前面的集合减去后面的集合(同类型去相减)watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 集合的增删改查

add()  添加一个元素

update()批量添加  里面用花括号

pop()随机删除

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 remove(value) 根据元素名称删除对应元素

集合是不能修改的(因为他是无序的),所以他也不能

集合的判断

isdisjoint() 判断两个集合是否没有交集

issubset()判断前面的集合是否被包含在后面的集合中

issuperset()判断前面的集合是否包含后面的集合数据watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

身份运算符 is   is not

判断两者之间是否是同一个对象

通过内存地址来判断是否一致

Python当中存在内存池,范围[-5,256],范围内,内存地址一致,范围外,内存地址不一致

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 (元祖,字符串,不管是序列类型还是散列类型都可以用,数值类型不能使用成员运算符)成员运算符 in  not in

数值类型不能使用成员运算符watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 优先级watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 判断是否为可变对象

判断依据:修改过后还是不是原本的内存地址,如果修改后内存地址不变是可变对象

修改后内存地址改变是不可变对象

可变对象:列表,字典,集合

不可变对象:数值类型,元祖,字符串

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 1,交集

2. count方法,统一大写或小写

3.10次就循环,k=4表示在str1中随机抽取4次watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUHl0aG9uIEJsYW5r,size_20,color_FFFFFF,t_70,g_se,x_16

 4,手机号,全是数字,以一开头,11位

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值