程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

学习7.内容# 1.数据类型补充 # 2.二次编码 # 3.以后会遇到的坑坑坑

发布于2019-08-07 11:01     阅读(663)     评论(0)     点赞(5)     收藏(0)


基础类型补充

str:不可变

1.首字母大写

name = "alex"
name1 = name.capitalize()
print(name1)

2.每个单词首字母大写

name = "alex wusir"
print(name.title())

3.大小写反转

 name = "Alex"
 print(name.swapcase())

4.居中--填充

 name = "alex"
 print(name.center(20,"-"))

5.查找 从左向右 只查找一个

 name = "alelx"
 print(name.find("b"))  #find查找不存在的返回-1
 print(name.index("b"))   #index查找不存在的就报错

6.拼接

 name = "al3x"
# print("_".join(name))  ***

7.格式化

 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)) # 按照关键字进行填充

8.+ * 开辟新的空间

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

list:

定义方法

list("123")

其他方法

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) # 降序
print(lst)

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)

面试题

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

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

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

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

dict

定义一个字典

print(dict(k=1,k1=2))

随机删除:popitem

dic = {"key":1,"key2":2,"key3":56}
print(dic.popitem())  # 返回的是被删除的键值对(键,值)
print(dic)
python36 默认删除最后一个
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
tuple list
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)))
print(dict("{1:1}"))

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

二次编码

密码本

 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"))
# 以什么编码集(密码本)进行编码就要用什么编码集(密码本)解码

以后会遇见的坑坑坑

循环

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)
lst = [1,2,3,4]
for i in lst:
    lst.pop(0)
print(lst)
lst = [1,2,3,4]
for i in lst:
    lst.remove(i)
print(lst)

成功删除的方式

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)  # 字典的迭代的时候改变了原来的大小(不能加不能删)
for i in dic:
    dic[i] = "123"
print(dic)
dic = dict.fromkeys("12345",1)
dic1 = dic.copy()
for i in dic1:
    dic.pop(i)
print(dic)

# 集合和字典都是迭代的时候不能改变原来的大小


所属网站分类: 技术文章 > 博客

作者:小胖子

链接:https://www.pythonheidong.com/blog/article/10127/bdbee9b03c43bd127ea4/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)