一、引子 1.什么是数据? x = 10,10是我们要储存的数据 2.为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不用的类型的数据去表示 3.数据类型 (1)数字 (2)字符串 (3)列表 (4)元组 (5)字典 (6)集合 字符串存储少量的数据,便于操作 元组里面可以放任何数据类型 列表可承载大量的数据,里面可以放任何数据类型 字典可存储大量的数据,关联数据,查找数据非常快 集合 求交集,求并集 二、数据类型 1. int 数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以: i= 2 print(i.bit_length()) 数字转换成二进制的最少位数 0 00000000 1 00000001 2 00000010 3 00000011 4 00000100 2.字符串,int,bool之间的转换 True False int --->str str(int) str --->int int(str) int---->bool 0 False 非0 True bool ---> int True 1 False 0 str---->bool 空字符串为False,非空为True bool转换成数字 i = int(True) print(i) i = int(False) print(i) 空字符串转换成bool print(bool("")) 非空字符串转换成bool print(bool(" ")) if 0 : print("aaa") while 1: print("111") 执行效率高,死循环 # 3.字符串的功能 i = "alex taibai jxmsiodj" # 字符串有顺序,有索引(下标),并且从0开始 # s1 和 i 没有关系,s1是从原字符串中找到的新的字符串。 # (1)通过索引取元素 s1 = (i[0]) print(s1) # (2)切片 print(i[0:2]) print(i[0: ]) print(i[ : ]) # (3)倒叙取 print(i[-1:-3]) # (4)起始索引,终止索引,步长,倒叙取 print(i[-1:-4:-2]) # (5)反取 print(i[6:2]) # (5)跳着取 print(i[3: :-1]) 功能中遇到的英文 fillchar = None 默认不写 字符串的创建方法 s = "alexwusir" (1)capitalize(),首字母大写,其他字母强制小写 print(s.capitalize()) (2)swapcase(),大小写反转 print(s.swapcase()) # (3)title(),被非字母隔开的部分,是一个整体,首字母大写,其他字母变小写 s = "*ssss /sssS *WWWW" print(s.title()) (4)upper 全部变大写 lower 全部变小写 验证码输入时大小写都可以 print(s.upper()) print(s.lower()) code = "aeDd" your_code = input("请输入验证码") if your_code.upper() == code.upper(): print("输入正确") else: print("请重新输入") (5)默认填充为None,传的参数长度小于原长度,打印出来原长 i = "xueruijuan" print(i.center(20,"*")) (6)expandtabs() 从\t 到前面填充到8或者16后者32....... s = "al\ttex wusir" print(s.expandtabs()) (7)find()通过元素找索引,从左向右找,可以整体找,可以切片找,找不到返回-1 计算机找"a1"认为他是个整体。会取第一个字母的位置 index()通过元素找索引,可以整体找,可以切片找,找不到报错 s = "alexwusir" print(s.find("a"),type(s.find("a"))) print(s.find("al"),type(s.find("a")) print(s.find("a,0,10"),type(s.find("a")) (8)判断字符串是不是以什么开头 startswith endswith s = "xueruijuan" print(s.startswith("xu",0,10)) print(s.endswith("l",0,10)) (9) strip()能去 换行符 tab键和 两侧空格和任意. 去除字符串前后两端的空格,换行符,tab键等 lstrip() rstrip() \n换行符 \t制表符 a = " xueruijuan\tujjkn \n" print(a.strip().strip("xu")) #可迭代的一直取 print(a.lstrip()) print(a.rstrip()) s = "\talex wusir\n" s1 = "alexwusir" print(s1.strip("la")) print(s1.strip("lad")) #只要有一个不是变量中的元素,就被挡住了,取不了了 (10)split 字符串转换成列表, 以分号开始分割成元素 s = "alex;awuesir" print(s.split(";")) print(s.split("a",1)) (11)replace s1 = "姐弟两一起来老老男孩学习" print(s1.replace("老","小",1)) (12)count 计算元素出现的次数 s = "sssssddffff"9 print(s.count("s")) (13) name = "xuersjaks123" print(name.isspace()) #字符串由空格组成 返回True False print(name.isalpha()) #字符串由字母组成 返回True False print(name.isdigit()) #字符串由数字组成 返回True False print(name.isalnum()) #字符串由字母和数字组成 返回True False (14)format() 格式化 第一种: d = "我叫{},年纪{},爱好{}".format("xue",18,"skssdsd") print(d) 第二种 e = "我叫{0},年纪{1},爱好{2},我依然喜欢{0}".format("xue",18,"skssdsd") print(e) # 第三种 f = "我叫{name},年纪{age},爱好{hobby}".format(name = "xue",age = 18,hobby= "jdsdh") print(f) 4.for in i = "xuensdoahd" for a in i: print(a)