python 数据类型的内置方法
python 数据类型的内置方法
#十进制数转为 其他进制
# print(bin(999)) # 0b1111100111 -- 0b 开头 最大只能到 1
# print(oct(999)) # 0o1747 -- 0o 开头就是八进制 --- 八进制
# print(hex(999)) # 0x3e7 -- 0x 开头就是十六进制 有英文字符的情况就是十六进制
# 其他进制 转为 十进制数
# print(int('0b1111100111', 2))
# print(int('0o1747', 8))
# print(int('0x3e7', 16))
字符串类型(str)
-
round() :取舍 四舍五入
-
isdigit(): 判定是否为整数
-
name[0]:字符串索引取值
-
join():拼接字符串 ‘*'.join(变量值)
-
切片 也是 顾头不顾尾 [起始位置:想要的结束位置+1]
word='hello_world' split_world=word[0:4+1] print(split_world) #hello
-
切片+步长 word[0:4+1:2]
word='hello_world' split_world=word[0:4+1:2] print(split_world) # 丛指定索引切到最后 --- [起始位置::] name_new_four = name[2::] print(name_new_four) #丛指定索引切到最后,加步长 --- [::步长] name_new_five = name[::2] print(name_new_five)
-
strip() : 去除首尾的空格
name = ' asdasf ' print(name) print(name.strip())
-
常用组合 input(' ').strip()
name=input("请输入你的名字:>>>>").strip() print(name)
-
lstrip() 左空格 rstrip()右空格
# 去除指定的字符 name = '&&nancy&&' print(name.strip('&')) l -- left print(name.lstrip('&')) r -- right print(name.rstrip('&'))
-
首尾字符判断
-
startswith():字符以什么开头
-
endswitch():字符以什么结尾
# name = 'dream' #startswith : 判断当前字符以什么开头,返回布尔值 print(name.startswith('w')) print(name.startswith('d')) # endswith : 判断当前字符以什么结尾,返回布尔值 print(name.endswith('m')) print(name.endswith('d'))
-
replace():替换方法
demo='I eat a hamburger' print(demo.replace('hamburger','hot dog'))
-
find():查找索引
-
index():索引值 ,索引第一个值
-
count():计数指定的元素个数
-
center():填充
name = 'sadasfe' center : 填充 (基于你的字符串长度的宽度,填充的字符) #两侧填充,如果两侧个数不平衡的情况下就是,右多左少 print(name.center(10, '-')) # --dream--- #ljust : 填充 (基于你的字符串长度的宽度,填充的字符)。 填充指定字符在右侧 print(name.ljust(10, '*')) # dream***** #rjust : 填充 (基于你的字符串长度的宽度,填充的字符)。 #填充指定字符在左侧 print(name.rjust(10, '*')) # *****dream #zfill : 填充 (基于你的字符串长度的宽度,填充的字符)。 #使用 0 填充长度,填充在字符串左侧 print(name.zfill(10))
列表类型(list)
-
list 可以强转字符串、元组、集合、字典
-
range():区间生成新列表
print(list(range(1, 5))) # [1, 2, 3, 4]
-
append():在结尾每次追加一个元素
num_list = [1, 2, 3, 4, 5, 6] num_list.append(11) # 没有返回值 , 影响的是原来的列表 print(num_list) # [1, 2, 3, 4, 5, 6, 11]
-
extend():可以添加多个元素到原来的末尾
num_list = [1, 2, 3, 4, 5, 6] num_list.extend([99, 88, 77]) print(num_list)
-
insert():按索引位置插值
num_list = [1, 2, 3, 4, 5, 6] #insert : 按索引位置插值 num_list.insert(1, 'b') print(num_list)
-
pop():去掉最后的元素 pop(1):去掉指定的元素
-
remove():删除指定位置元素
-
reverse():颠倒元素
num_list = [1, 2, 3, 4, 5, 6] # reverse 颠倒元素,无返回值,影响到的是原来的列表 num_list.reverse() print(num_list) #[6, 5, 4, 3, 2, 1]
-
sort():排序从小到大
-
#先排序,再反转 num_list.sort(reverse=True) print(num_list)
-
步长反转列表
num_list=[1,3,4,5,7] print(num_list[::-1])
布尔类型(bool)
-
强制转换类型
-
为真的情况
- 1.有值的数字类型
- 2.有值的字符串/列表/字典/元组/集合
-
为假的情况
-
空的字符串/列表/元组/字典
name = 'asda' print(bool(name), type(bool(name))) num_one = 0 print(bool(num_one), type(bool(num_one))) # False <class 'bool'> name = '' print(bool(name), type(bool(name)))
-
-
元组类型(tuple)
-
定义:一个元素的时候要 加 ,
-
【1】类型强转
- tuple() 支持字符串/列表/字典/集合 强转成元组
- 不支持数字类型
-
【2】索引取值
num_tuple = (1, 2, 3, 4) print(num_tuple[0]) print(num_tuple[-1]) num_tuple[0]=999
-
【3】切片
num_tuple = (1, 2, 3, 4) #顾头不顾尾 [起始索引:结束索引:步长] print(num_tuple[0:4:2])
-
【4】计算长度 --- len
num_tuple = (1, 2, 3, 4) print(len(num_tuple)) # 4
字典类型(dict)
-
键值对定义
-
key : 建议使用不可变数类型 -- 字符串 / 数字类型
value :可以是任意的数据类型 -
【1】取值
user_dict = {'name': "hope", "age": 18} 第一种方法 : get 根据键取值,能取到值就是对应的值 print(user_dict.get('name')) 如果取不到键对应的值,就是None print(user_dict.get('sex')) 如果取不到,可以给他指定默认值,取不到的时候返回的就是默认值 print(user_dict.get('sex', '男'))
-
【2】计算长度
user_dict = {'name': "dream", "age": 18} print(len(user_dict)) # 2
-
【3】成员运算
user_dict = {'name': "dream", "age": 18} # 直接使用 元素 + in + 字典 这个元素只能是判断当前元素是否是字典的键 print("name" in user_dict) # True print("dream" in user_dict) # False
-
【4】增加量
user_dict = {'name': "hope", "age": 18} 第一种方法 : 字典[key]=value 如果没有这个键,那就将键值对增加到字典里面 user_dict['sex'] = '男' 如果存在这个键,就会直接被替换成新内容 user_dict['name'] = 'Hope' print(user_dict) 第二种方法: update(key=value) 如果没有这个键,那就将键值对增加到字典里面 user_dict.update(sex="男") 如果存在这个键,就会直接被替换成新内容 user_dict.update(name="男") print(user_dict)
-
【5】删除
user_dict = {'name': "hope", "age": 18} 第一种方法 : del 根据字典中的键删除指定的键值 del user_dict["name"] print(user_dict) 第二种方法 : pop 必须制定参数 : 参数就是你想要删除的 key res = user_dict.pop('name') 并且有返回值,返回值就是我们弹出来的 value print(user_dict) print(res) 第三种方法 : clear 清空字典内的所有内容 user_dict.clear() print(user_dict) 第四种方法 :popitem 删除结尾的键值对 user_dict = {'name': "hope", "age": 18, 1: 2, 2: 3, 3: 4, 4: 5} res = user_dict.popitem() print(user_dict) print(res)
-
【6】键对/值对/键值对
user_dict = {'name': "hope", "age": 18, 1: 2, 2: 3, 3: 4, 4: 5} print("name" in user_dict.keys()) print("sex" in user_dict.keys()) print(user_dict.keys()) # dict_keys(['name', 'age', 1, 2, 3, 4]) print(user_dict.values()) # dict_values(['hope', 18, 2, 3, 4, 5]) print(user_dict.items()) # dict_items([('name', 'hope'), ('age', 18), (1, 2), (2, 3), (3, 4), (4, 5)]) for key, value in user_dict.items(): print(key, value)
-
【7】遍历循环
user_dict = {'name': "hope", "age": 18, 1: 2, 2: 3, 3: 4, 4: 5} 可以遍历字典,但是遍历字典遍历出来的是字典的键 for i in user_dict: 我们可以根据遍历的键去取值 print(user_dict[i]) for i in range(len(user_dict)): 我们可以遍历字典的键值对,根据解压赋值 for key, value in user_dict.items(): print(key, value)
-
【8】字典的排序
user_dict = {'name': "hope", "age": 18} num_dict = {1: 2, 8: 3, 6: 4, 7: 5} 字典类型没有 sort 方法 user_dict.sort() 现在学的只是针对字典的键排序 如果是中文字符 : 按照第一个字母的 ASCII 吗大小排序 res = sorted(user_dict.items()) res = sorted(num_dict) print(res)
集合类型 --- set
-
类型强转
集合的特点就是无序性 print(set('hope')) 集合的另一大特性就是去重,去除重复的元素 print(set('tonu')) 字符串类型可以强转成集合类型 字典也可以去重 , 一般我们只对字典的值去重 因为字典的键一般情况下都是唯一的,不需要更改 print(set({'name': "hope", "age": 18, "sex": 18}.values())) 列表类型是可以转成集合类型 num_list = [1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7] print(set(num_list)) 数字类型不可以 print(set(1))
-
添加元素
num_set = {1, 2, 3, 4} 添加方法一 :add num_set.add(5) print(num_set) 添加方法二 : update 可以更新多个元素到原来的集合中 放的参数要是可迭代类型(字符串/列表/字典/元组) 重复的元素会按照集合的特性进行去重 不重复的元素就会被加进去 num_set.update([1, 2, 9]) num_set.update((1, 2, 9)) num_set.update('hope') print(num_set)
-
删除元素
num_set = {1, 2, 3, 4, 5, 6} 第一种方法 :remove 只能按照集合中的值删除掉指定元素 num_set.remove(3) 没有指定元素的时候就会报错 num_set.remove(7) # KeyError: 7 print(num_set) 第二种方法 : discard , 无返回值 根据指定的值删除掉集合中指定的元素 num_set.discard(5) # 如果删除的值在集合中不存在,那就会无反应,不会报错 print(num_set.discard(7)) print(num_set) 第三种方法 :pop num_set = {5, 7, 'tony', True} print(num_set) 把集合的第一个元素删除掉了 res = num_set.pop() print(num_set) print(res)
-
集合的运算方法
并集/交集/差集 set1 = {1, 2, 3} set2 = {3, 4, 5} # 并集 union_set = set1.union(set2) # 交集 union_set_one = set1.intersection(set2) # 差集 union_set_two = set1.difference(set2) # 对称差集 union_set_three = set1.symmetric_difference(set2) print(union_set) # 输出: {1, 2, 3, 4, 5} print(union_set_one) # 输出: {3} print(union_set_two) # 输出: {1, 2} print(union_set_three) # 输出: {1, 2, 3, 4, 5}