数字类型
整型 用途:记录年龄、等级、号码等 定义方式如 age = 18 本质 # age = int(18) 整型只能存一个值而且是不可变类型 int()方法能将字符串转为整型 需要注意的是使用int只能转纯数字的字符串,有小数点也不行 浮点型 用途:记录身高、体重、薪资等 定义方式如 height= 185.1 本质 # height= float(185.1) 浮点型只能存一个值而且是不可变类型 float()方法能将字符串和整型转为浮点型 需要注意的是使用float方法只能转纯数字的字符串,可以有小数点
可变类型:值改变的情况下,id不变,说明你改的是原值,可变==不可hash
不可变类型:值改变的情况下,id一定变,不可变==可hash
id相等的情况值一定相等
id不相等的情况下值可能相等
进制转换
python可以使用int()方法将其他进制转10进制 int()可以传二个参数,第一个表示要转的进制数,第二个参数表示要第一个参数是什么进制 然后就能转成十进制 10进制转二进制 使用bin()方法,bin(10进制) 结果显示为 0b二进制数 # print(bin(12)) # 0b1100 10进制转八进制 使用oct()方法,oct(10进制) 结果显示为 0o八进制数 # print(oct(12)) # 0o14 10进制转16进制 使用hex()方法,hex(10进制) 结果显示为 0x16进制数 # print(hex(12)) # 0xc
字符串
用途:记录描述性的状态,比如人的名字、地址、性别 定义方式:在' ', " ", ''' ''', """ """内包含一系列的字符 只能存一个值,有序排列,不可变类型 字符串操作 # 索引取值: 字符串[index] 正索引可以正向取和负索引可以反向取,不能改只能取 # 切片:从一个大的字符串中截取一段新的小字符串 字符串[索引位:索引位:步长] 左边的固定就是头,右边固定就是尾 没有按数字来分头尾,步长不写默认是1 切片取值默认是从左往右的 正步长左索引位需比右索引位小 负步长左索引需比右索引大 #长度:len(字符串) #成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中 子字符串 in 大字符串 子字符串 not in 大字符串 # 去掉字符串左右两边的字符,不管中间的 使用strip()方法,将想去除的字符作为参数传入 不传参默认去除字符串首尾空格, lstrip()只去除左边字符 rstrip()只去除右边字符 # 切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值,切分的顺序从左往右 字符串.split()传入要切分的的字符和要切分的次数,不传入切分次数默认全切 rsplit()右边开始切 #循环:可以使用for循环遍历出字符串中的字符 # lower()方法可以使字符串全小写 # upper()方法可以是字符串全大写 # startswith()方法可以判断字符串是否以什么什么开头 # endswith()方法可以判断字符串是否以什么什么结尾 # format的三种玩法(python推荐使用format做格式化输出) 第一种 按位置占位 跟%s原理一致 使用{}占位 字符串.format(各位置显示内容以逗号隔开) # str1 = 'my name is {} my age is {}'.format('jason',18) 第二种 按索引占位 使用{索引位}占位 字符串.format(各索引位要显示的内容以逗号隔开) # str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18) 第三种 指名道姓占位(关键字传参) 使用{关键字}占位 字符串.format(各关键字=要显示的内容以逗号隔开) # str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18) # join() 将容器类型中的多个元素通过指定字符拼接成一个字符串 # ls = ['1','a','b'] res = '|'.join(l) 结果 # 1|a|b # replace()将字符串中字符替换成指定字符 replace(被替换字符,要替换字符,替换次数) 次数不写默认全部替换 # str1 = 'abc' str1.replace('a','b') 结果 # 'bbc' # isdigit() 判断字符串中包含的是否为纯数字 # find(字符串,头,尾) 头,尾是索引的范围不传查找所有,返回结果的是字符串首字符所在的索引值,找不到的时候不报错返回的是-1, # rfind(字符串,头,尾) 与find功能但从末尾开始查找 # index(字符,头,尾) 头,尾是索引的范围不传查找所有,返回结果是所传字符所在的索引值 # rindex(字符,头,尾) 作用与index()相同,返回结果是所传字符末尾所在的索引值 # count() 统计字符在字符串中出现的次数 # 字符串填充字符 # center(字符串的新长度,填充字符)返回一个原字符串居中,并使用填充字符填充至长度为新长度的新字符串。默认不写填充字符为空格 # ljust(字符串的新长度,填充字符)返回一个原字符串左对齐,并使用填充字符填充至新长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串,填充字符不写默认为空格 # rjust(字符串的新长度,填充字符)返回一个原字符串右对齐,并使用空格填充至新长度的新字符串。如果指定的长度小于字符串的长度则返回原字符串,填充字符不写默认为空格 # zfill(字符串的新长度)返回新长度的字符串,原字符串右对齐,前面填充0 # expandtabs(空格数) 把字符串中的 tab 符号(' ')转为空格,tab 符号(' ')默认的空格数是 8 # captalize() 首字母大写 # swapcase() 大小写互换 # title() 每个单词的首字母大小 num1=b'4' #bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='壹' #中文数字 num4='Ⅳ' #罗马数字 # isnumeric() 不支持判断bytes 能识别unicode,中文数字,罗马数字 # isdecimal() 不支持判断bytes 能识别unicode 只识别普通的阿拉伯数字 # isdigit() 支持判断bytes 能识别bytes,unicode 识别为True,不识别为False
列表
用途:存放多个值,可以根据索引存取值 定义方式:在[]内用逗号分割开多个任意类型的值 # 按索引存取值 # 切片 #追加,尾部添加一个字符串 列表.append(要添加的数据) # 任意位置添加元素 列表.insert(要添加的索引位,要添加的数据) # 添加容器类型数据 列表.extend(容器类数据) 内部原理for循环容器一个个追加到列表的尾部 # 长度 len(列表) # 成员运算in和not in 数据 in 列表 数据 not in 列表 # 删除 del 列表[索引] del适用于所有的删除操作 列表.pop(索引) 按照索引弹出元素,不写索引默认尾部弹出 指定删除 列表.remove(要删除的数据) # 循环 使用for循环可以遍历出列表中所有数据 # conut(元素)统计元素在列表中出现的次数 # clear() 清空列表 # list.reverse() 将列表元素排列顺序反转 # list.sort() 将列表排序,默认情况下是从小到大(升序) 可以通过指定参数reverse=True来修改默认的排序规则从大到小(降序)
补充知识:队列就是先进先出
堆栈就是先进后出