python基础数据类型
字符串:
# s = "al1ex is a gay and Wu傻sir is A gay too" # s1 = s.capitalize() # 把首字母变成大写 # print(s1) # s2 = s.lower() # 小写 # print(s2) # s3 = s.upper() # 大写 # print(s3) # s4 = s.swapcase() # 大小写互换 # print(s4) # s2 = "БBß" # 俄美德 # print(s2) # print(s2.lower()) # print(s2.casefold()) # s5 = s.title() # 把每个单词的首字母大写 # print(s5) # s = "sb" # s1 = s.center(10, "*") # 强行使用*在原字符串左右两端进行拼接. 拼接成10个单位 # print(s1) # s = " alex is a gay " # s1 = s.strip() # 默认去掉空格. 空白\t \n # print(s1) # username = input("请输入用户名:").strip() # password = input("请输入密码:").strip() # if username == 'alex' and password =="123": # print("成功") # else: # print("失败") # s = "sb alex wusir sb sb taibai taibai sb" # print(s.strip("sb")) # 可以指定要去掉的内容 # s = "泰坦尼克号, 西虹市首富, 小猪佩奇, 冒险王" # s1 = s.replace("冒险王", "西西里的美丽传说") # s2 = s.replace("佩奇", "wusir") # print(s2) # # s = "alex_wusir_taibai_ritian" # s1 = s.replace("_","") # print(s1) # s8 = "sylar_alex_taibai_wusir_eggon" # # s9 = s8.replace("i", "sb", 2) # 换两次 # # print(s9) # # lst = s8.split("taibai") # 切完的结果是一个列表. 列表中装的是字符串. 用什么切. 就会损失掉什么 # print(lst) # s = """我家大门常打开 # 开放怀抱等你 # 后面是什么歌词 # 我忘了""" # lst = s.split("\n") # print(lst) # s = "我今天下午要去吃饭饭" # lst = s.split("我今天下午要去吃饭饭哈哈哈") # 没切 # print(lst) # s = "我叫%s, 我今年%s了, 我喜欢%s" % ("周杰伦", "40", "昆凌") # print(s) # s = "我叫{}, 我今年{}了, 我喜欢{}".format("周杰伦", "40", "昆凌") # print(s) # s = "我叫{0}, 我今年{1}了, 我喜欢{2}".format("周杰伦", "40", "昆凌") # print(s) # s = "我叫{name}, 我今年{age}了, 我喜欢{hobby}".format(hobby="周杰伦", age="40", name="昆凌") # print(s) # s = "alex is a gay" # print(s.startswith("tory")) # 以xxx开头 # print(s.endswith("girl")) # 以xxx结尾 # s = "I have a dream. I want to kill you!" # 都可以进行索引范围 # print(s.count("dream")) # 计算a在字符串中出现的次数 # print(s.find("a")) # 查找xxx在字符串中出现的位置. 只找第一次出现的位置, 没有就返回-1 # print(s.index("z")) # 当字符串不存在的时候. 报错 # s = "abcdefg1@" # print(s.isdigit()) # %d # print(s.isalpha()) # 字母 # print(s.isalnum()) # 是否由数字和字母组成 # s = "壹仟贰佰五十六萬拾" # print(s.isnumeric()) # 字符串长度, python的内置函数len(), int(), bool(), str(), type() # s = "娃哈哈可口可乐" # print(len(s)) # 字符串中的字符的个数 # s = "王小利刘能赵四" # # # 对字符串进行遍历. # n = 0 # while n < len(s): # print(s[n]) # n = n + 1 # # # 迭代 # for c in s: # charactor # print(c)
字节流的问题
s="中文" print(type(s)) ls=s.encode("utf-8") #已经编译成二进制,但是要打印的话会以16进制打印出来 print(ls) print(ls.decode("utf-8"))
列表:
# lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"] # 在屁股后面添加 # lst.append("黄宏") # 在原有的基础上进行的操作 # # 在xxx位置插入xxxx内容 # lst.insert(1,"王力宏") # lst.extend(["麻花藤", "马云", "王健林", "许家印"]) # 迭代添加 # print(lst) # 删除 # data = lst.pop(2) # 返回被删除的数据 # print(data) # print(lst) # lst.remove("赵四") # 删除元素. # lst.remove("刘能") # 如果不存在会报错 # 切片删除 # del lst[1:3] # 清空 # lst.clear() # print(lst) # lst = ["王者农药", "魔兽世界", "DNF", "逆水寒", "反恐精英"] # # lst[0] = "扫雷" # # print(lst) # # lst[3] = "吃鸡" # # # lst[1:3] = ["跑跑卡丁车"] # 先删除后添加 # # lst[1::2] = ["QQ华夏","QQ三国"] # 切片修改的时候. 如果步长不是1. 注意元素的个数 # print(lst) lst = ["锅包肉", "好人家火锅", "巫山烤鱼", "清水煮白菜", "烤鸭"] for el in lst: # element(元素) print(el)
# 将列表转换成字符串. 每个元素之间用_拼接 # s = "**".join(["高华新", "刘清扬", "崔园樟"]) #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的参 # print(s) #数是列表 # # ss = "高华新**刘清扬**崔园樟" # ss.split("**") #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的 # 参数是分隔符 # 字符串转换成列表: split() # 把列表转换成字符串: join() # s = "_".join("马化腾") # print(s) # # join(可迭代对象) # lst = ["紫云", "大云", "玉溪", "紫钻","a","b"] # # lst.clear() # new_lst = [] # 准备要删除的信息 # for el in lst: # 有一个变量来记录当前循环的位置 # new_lst.append(el) # # # 循环新列表, 删除老列表 # for el in new_lst: # lst.remove(el) # # # 删除的时候, 发现. 剩余了一下内容. 原因是内部的索引在改变. # # 需要把要删除的内容记录下来. 然后循环这个记录. 删除原来的列表 # # print(lst) # print(new_lst) # lst = ["张国荣", '张铁林', '张国立', "张曼玉", "汪峰"] # # 删掉姓张的 # # 记录姓张的. # zhangs = [] # for el in lst: # if el.startswith("张"): # zhangs.append(el) # for el in zhangs: # lst.remove(el) # print(lst) # print(zhangs) # 字典 # dic = {"提莫":"冯提莫", "发姐":"陈一发儿", "55开":"卢本伟"} # # dic.clear() # lst = [] # for k in dic: # lst.append(k) # # for el in lst: # dic.pop(el) # print(dic) # 综上. 列表和字典都不能再循环的时候进行删除. 字典再循环的时候不允许改变大小 # dic = {"apple":"苹果", "banana":"香蕉"} # # 返回新字典. 和原来的没关系 # ret = dic.fromkeys("orange", "橘子") # 直接用字典去访问fromkeys不会对字典产生影响 # ret = dict.fromkeys("abc",["哈哈","呵呵", "吼吼"]) # fromkeys直接使用类名进行访问 # print(ret) # a = ["哈哈","呵呵", "吼吼"] # ret = dict.fromkeys("abc", a) # fromkeys直接使用类名进行访问 # a.append("嘻嘻") # print(ret)
元组:
# by luffycity.com # print((1+3)*5) # print((3)) # tu = (3, ) # 元组中如果只有一个元素. 需要在括号里写一个, # tu = tuple() # 空元组 # print(type(tu)) # tu = ("人民币", "美元", "英镑", "欧元") # tu.append("哈哈") # tu[0] = "日元" # 不予许修改 # del tu[2] # 删除也不行 # print(tu[2]) # 索引可以用 # print(tu[::2]) # for el in tu: # print(el) # 元组的第一层是不能进行赋值的. 内部元素是没有要求 # tu = (1, "哈喽", "how are you?", "alex", ["alex"]) # tu[3].upper() # print(tu)
字典:
# dic = {'name':'alex','age':9000} #字符串 # print(dic) # # dic = {1:'a',2:'b',3:'c'} #数字 # print(dic) # # dic = {True:'1',False:'0'} #布尔值 # print(dic) # # dic = {(1,2,3):'abc'} #元组 # print(dic) # dic = {[1,2,3]:'abc'} # print(dic) #增 # dic['火女'] = '人头狗' # 新增 # print(dic) # dic.setdefault('火女','安妮') # 如果在字典中存在就不进行任何操作,不存在就进行添加 # dic.setdefault('火女','火男') # 删 # ret = dic.pop('易大师') #通过key删除 返回被删除的value # print(ret) # del dic['剑豪'] # dic.clear() # {} # ret = dic.popitem() #随机删除 返回值 一个元组 (key,value) # print(ret) # print(dic) # 改: # dic['剑豪'] = '哈莎阁' # 强制修改 # dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'} # dic1.update(dic) # # print(dic1) # 查 # for 循环 元组 键 值 键值对 # for i in dic: # print(i) #for 循环默认是获取字典中的键 # print(dic['易大师父']) #查看1 没有这个键的时候查询会报错 # print(dic.get('易大师','你傻啊,没有!')) #查看2 没有返回None 可以指定返回内容 # print(dic.setdefault('易大师范湖')) #查看3 没有返回None # 其他操作(字典中独特的) # keys values items # print(dic.keys()) # (高仿列表) # print(dic.values()) # (高仿列表) # print(dic.items()) # for i in dic.keys(): # print(i) # # for i in dic: # print(i) #获取到字典中的每一个键 # for i in dic.values(): # print(i) #获取到字典中的每一个值 # for i in dic.items(): # print(i) # 解构(解包) a,b = '12' #将后边解构打开按位置赋值给变量 支持 字符串 列表 元组 print(a) print(b) # dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'} # for a,b in dic.items(): # # print(dic.items()) # print(a) # print(b) # dic1 = {} # # dics = dic1.fromkeys([1,2,3],'abc') # 字典嵌套: # dic = { # 'name':'汪峰', # 'age':43, # 'wife':{ # 'name':'国际章', # 'age':39, # 'salary':100000 # }, # 'baby':[ # {'name':'熊大','age':18}, # {'name':'熊二','age':15}, # ] # # } # # dic['baby'][0]['age'] = 19 # # print(dic)
集合:
# s = {"周杰伦", "的老婆","叫昆凌", (1,2,3), "周杰伦"} # lst = [11,5,4,1,2,5,4,1,25,2,1,4,5,5] # s = set(lst) # 把列表转换成集合. 进行去重复 # lst = list(s) # 把集合转换回列表. # print(lst) #添加 # s = {"刘嘉玲", '关之琳', "王祖贤"} # s.add("张曼玉") # print(s) # # s.update("麻花藤") # 迭代更新 # s.update(["张曼玉","李若彤","李若彤"]) # print(s) #删除,随机删除一个 s = {"刘嘉玲", '关之琳', "王祖贤"} # s.pop() #随机弹出一个,不能加参数,加参数报错 # print(s) # s.remove("王祖贤") # print(s) # s.clear() # print(s) # 集合本身是可变的数据类型, 不可哈希, 有增删改查操作 # s = {"刘嘉玲", '关之琳', "王祖贤"} # # s.update("麻花藤") # 迭代更新 # s.update(["张曼玉","李若彤","李若彤"]) # print(s) # 集合中的元素必须是可哈希的. 不重复的. 可以去重. 哈希hash算法 #要点总结:可哈希指的是不可变的数据结构(字符串str,元组tuple,对象集objects) #可哈希(hashable)和不可变性(immutable) #如果自己的生命周期中有一个哈希值是不可变的,那么他就是可哈希的,这个哈希值就是他们的id() #参考链接:https://blog.csdn.net/u010250863/article/details/64129948/