day07

数据类型补充

str

  • 首字母大写:capitalize()
name = 'alex'
name1 = name.capitalize()
print(name1)
  • 每个单词首字母大写:title()
name = 'alex wusir'
print(name.title())
  • 大小写反转:swapcase()
name = "Alex"
print(name.swapcase())
  • 居中(填充):center(总占位数,填充内容)
name = 'alex'
print(name.center(20)) name = 'alex'
print(name.center(20,'-'))
  • -09查找:find(内容) 从左向右只查一个,返回索引位置,没有就返回-1

​ index(内容):从左向右只查一个,返回索引位置,查找不存在的就报错

name = "alelx"
print(name.find("b")) #find查找不存在的返回-1
print(name.index("b")) #index查找不存在的就报错
  • 拼接:'符号'.join()
name = "al3x"
print("_".join(name)) ***
  • 格式化:1)%s %d 、2)f 、3)name.format()

{}配合format(添加内容个数与{}个数对应)

{数字}配合format(内容),按照索引值

{字母}配合format(字母 = ’内容‘) 按照关键字进行填充

# 1.%s
# 2.f
# 3.name.format()
# name = "alex{},{},{}"
# print(name.format(1,2,3)) # 按照顺序位置进行填充
# name = "alex{2},{0},{1}"
# print(name.format("a","b","c")) # 按照索引值进行填充
# name = "alex{a},{b},{c}"
# print(name.format(a=1,c=11,b=67)) # 按照关键字进行填充

-*字符串都会开辟一个新空间

# + * 开辟新的空间

# name = "alex"
# name1 = "wusir"
# print(id(name))
# print(id(name1))
# print(id(name + name1))

list

定义方式:

list('123')

其他方法:

排序:sort() 默认升序,如果是中文,以码来排序

降序:sort(reverse = True)

lst = [1,2,23,234,435,36,23,213421,421,4231,534,65]
lst.sort()
print(lst) lst = ["你好","我好"]
lst.sort()
print(lst)
lst.sort(reverse=True) # 降序

反转:reverse() 或者 lst[::-1]

# lst = [1,2,3,4453,5,6,7]
# print(lst[::-1])
# lst.reverse() # 反转
# print(lst) # lst = [1,2,3,4,5123,21345,231123,4,1235,234,123]
# lst.sort()
# lst.reverse()
# print(lst)

查找: index

面试题:

# lst = [[]]
# new_lst = lst * 5
# new_lst[0].append(10)
# print(new_lst) # lst = [1,[]]
# new_lst = lst * 5
# new_lst[0] = 10
# print(new_lst) # lst = [1,[]]
# new_lst = lst * 5
# new_lst[1] = 10
# print(new_lst)

把一个列表追加到另外一个列表中

+*元素都是共用的

方式一:
lst.extend(lst1)
print(lst)
方式二:
print(lst+lst1) new_lst = lst * 5
print(id(new_lst[0]),id(new_lst[0])) # lst = [[]]
# new_lst = lst * 5
# new_lst[0].append(10)
# print(new_lst)

tuple

(1,)也是元组

# tu = (1,)   # (1,)是元组# print(type(tu))

(1) 括号里数据本身的类型

# tu = ("12")  # 数据类型是()中数据本身
# print(type(tu))

元组 + * 不可变共用,可变也共用

dict

定义字典:

dict(key = 1,key2 = 2)

随机删除:popitem

返回的是被删除的键值对,以元组的形式:(键,值),python3.6以上默认删除最后一个

# dic = {"key":1,"key2":2,"key3":56}
# print(dic.popitem()) # 返回的是被删除的键值对(键,值)
# print(dic)
# python36 默认删除最后一个

fromkeys("可迭代的键",共用的值)

# dic = {}
# dic.fromkeys("123",[23]) # 批量添加键值对{"1":[23],"2":[23],"3":[23]}
# print(dic) # dic = dict.fromkeys("123456789",1) # 批量添加键值对"键是可迭代对象",值 -- 会被共用
# dic["1"] = 18
# print(dic)

set

set() ——空集合

{} ——空字典

定义集合:

set('alex')     #迭代添加

bool: False

数字:0

字符串:""

列表:[]

元组:()

字典:{}

集合:set()

其他:None

数据类型之间的转换

# list  tuple
lst = ['1', '2', '3']
tu = tuple(lst)
print(tu) # tuple list
tu = ('1', '2', '3')
lst = list(tu)
print(lst) ————————————————————————————————
# str list
name = "alex"
print(name.split()) # list str
lst = ["1","2","3"]
print(''.join(lst)) —————————————————————————————————
# dict -- str
dic = {"1":2}
print(str(dic),type(str(dic))) str -- dict
# print(dict("{1:1}")) # 报错 —————————————————————————————————
# set - list
s = {1,2,3,4}
print(list(s)) # list - set
lst = [1, 2, 3, 4]
print(set(lst))

python数据类型:

# python数据类型:
# 可变:
# list ,dict ,set
# 不可变:
# int bool str tuple
# 有序:
# list,tuple,str,int,bool
# 无序:
# dict,set
# 取值方式:
# 索引: str list tuple
# 直接: set ,int ,bool
# 键: dict

lst = [1,2]
for i in lst:
lst.append(3)
print(lst) # 死循环

列表删除——从后向前删除

错误事例:
lst = [1,2,3,4]
for i in lst:
lst.pop()
print(lst) # [1,2] 错误事例:
lst = [1,2,3,4]
for i in lst:
lst.pop(0)
print(lst) # [3,4] 错误事例:
lst = [1,2,3,4]
for i in lst:
lst.remove(i)
print(lst) # [2,4] 成功事例:
lst = [1,2,3,4,6]
for i in range(len(lst)):
lst.pop()
print(lst) lst = [1,2,3,4,6]
for i in range(len(lst)-1,-1,-1):
del lst[i]
print(lst) lst = [1,2,3,4,6]
for i in range(len(lst)):
del lst[-1]
print(lst) # 创建一个新的列表,删除旧的列表
lst = [1,2,3,4,5,6]
lst1 = lst.copy()
for i in lst1:
lst.remove(i)
print(lst)

删除字典的坑

字典迭代的时候不能增加不能删除

集合和字典都是迭代的时候不能增加不能删除

dic = dict.fromkeys("12345",1)
dic1 = dic.copy()
for i in dic1:
dic.pop(i)
print(dic) # 报错 dic = dict.fromkeys("12345",1)
print(dic)
for i in dic:
dic[222] = 666
print(dic) # 报错 dic = dict.fromkeys("12345",1)
dic1 = dic.copy()
for i in dic1:
dic.pop(i)
print(dic)

二次编码

密码本:

ascii ——没有中文

gbk ——英文8b 1B 中文16b 2B

unicode ——英文16b 2B 中文 32b 4B

utf-8 —— 英文8b 1B 欧洲16b 2B 亚洲24b 3B

# name = "你好啊"
# s1 = name.encode("utf-8") # 编码 9
# s2 = name.encode("gbk") # 编码 6
# s2 = s1.decode("utf-8") # 解码
# print(s2.encode("gbk"))

以什么编码集(密码本)进行编码就要用是什么编码集(密码本)解码

day07——数据类型补充、坑、二次编码的更多相关文章

  1. python基础知识(七)---数据类型补充、"雷区"、编码

    数据类型补充."雷区".编码 1.数据类型补充 str: #字符串数据类型补充 s1=str(123) #常用于类型转换 print(s1) #capitalize()首字母大写 ...

  2. day07数据类型的相互转化,字符编码

    复习 ''' 1.深浅拷贝 ls = [1, 'a', [10]] 值拷贝:直接赋值 ls1 = ls, ls中的任何值发生改变,ls1中的值都会随之改变 浅拷贝:通过copy()方法 ls2 = l ...

  3. [二次编码,数据类型补充以及各种坑]https://i.cnblogs.com/EditPosts.aspx?postid=11184330

    数据类型补充 str:不可变数据类型 1.capitalize首字母大写 name="song" n=name.capitalize() print(n) Song 2.title ...

  4. 326 集合 ,数据类型的补充 ,copy , 编码之间的转换

    一.数据类型补充1,对于元组:如果只有一个元素,并且没有逗号,此元素是什么数据类型,改表达式就是什么数据类型. tu = () tu1 = (,) print(tu,type(tu)) #1 < ...

  5. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  6. python之数据类型补充、集合、深浅copy

    一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址 ...

  7. day8数据类型补充,集合,深浅拷贝

    思维导图: 集合的补充:下面的思维导图有一个点搞错了,在这里纠正一下,没有合集,是反交集,^这个是反差集的意思 . 交集&,反交集^,差集-,并集|,然后就是子集和超集 数据类型补充: ''' ...

  8. 巨蟒python全栈开发-第7天 基本数据类型补充&深浅拷贝

    1.基本数据类型补充 2.深浅拷贝 DAY7-基本数据类型(基本数据类型补充&深浅拷贝) 本节主要内容: 1.补充基础数据类型 (1)join方法 (2)split方法 (3)列表不能在循环时 ...

  9. Day7--Python--基础数据类型补充,集合,深浅拷贝

    一.基础数据类型补充 1.join() 把列表中的每一项(必须是字符串)用字符串拼接 与split()相反 lst = ["汪峰", "吴君如", " ...

随机推荐

  1. 压缩、解压命令——gzip、gunzip、tar、zip、bzip2

    1.gzip命令与gunzip命令(压缩解压文件): (1)gzip——压缩: 利用touch命令创建一个文件,并向里面写入内容: 对创建的文件进行压缩: (2)解压缩gzip -d或gunzip: ...

  2. nginx unit java 试用

    unit 当前已经支持java了,当时支持基于servlet 的开发模式,以下是一个简单的学习 基于官方的demo 环境准备 docker-compose文件   version: "3&q ...

  3. 洛谷 P5614题解

    吐槽:数据好像有点水,直接枚举到200可以得80 points. 另:我还是太弱了,比赛的时候只有90 points,#7死卡不过去,最后发现是没有判断 \(z_1\) 和 \(z_2\) 的范围-- ...

  4. mlocate比find快很多的查找命令

    mlocate比find快很多的查找命令 使用linux操作系统的人,一般都用过文件查找命令find,在文件数量非常庞大的时候,比如在高通的android工程项目中,目录大小有十几个G,文件数量非常多 ...

  5. Python 使用scapy 时报:ImportError: cannot import name 'NPCAP_PATH' 解决

    解决办法:下载源码 https://github.com/secdev/scapy 下载完成后解压后里面有个scapy文件夹,把这个文件夹替换\Lib\site-packages\ 下的scapy 整 ...

  6. Unity制作棋牌手游之斗地主

    目录 大小7.2GB,MP4格式 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  7. Cross-channel Communication Networks

    Cross-channel Communication Networks 2019-12-13 14:17:18 Paper: https://papers.nips.cc/paper/8411-cr ...

  8. 【FPGA】always (*) 后代码全部显示注释字体的颜色之解决方法

    2015年08月26日 09:44:05 风雨也无晴 阅读数:1289    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/scottly1/art ...

  9. ([Ljava/lang/String;)V的含义

    https://blog.csdn.net/longaiyunlay/article/details/80049440 “([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编 ...

  10. Sql中substr的使用

    pandas和SQL数据分析实战 https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&sha ...