基本数据类型的内置方法与可变不可变类型

一、基本数据类型的内置方法

1.1 整数和浮点数

1、整数
# 整数的转换
    age = "18"
    print = int(age)
# 非整数型的是转换不了整数,比如
	height = 1.8
    print = int(height)  # 这个是错误的,带了小数点,应该转换成浮点型
    name = "Ame"
    print = int(name)  # 这个是错误的,因为字符串是英文字母组成的
	print(int(11.11))  # 11
    print(int("11.11"))  #报错 因为里面是字符串型的浮点型 
2、浮点型
# 浮点型的装换
	height = 180.1
    print(float(180.1))  # 180.1
    print(float("180.1"))  # 180.1
    print(float(180))  # 180.0
    print(int(11.11))  # 11

1.2 字符串

1、字符串的查找(索引)   索引是从0开始的
	name = "ameameame"
    print(name[0])  # a
    print(name[-1])  # e
2、字符串的查找(切片)
	name = "ameameame"
    print(name[0:6:1])  # ameame 1 乃是步长的意思
    print(name[0:6:2])  # aem	2 乃是步长的意思
    print(name[-1:-6:-1])  #emaem 	3 因为查找默认是从左到右,所以得加-1来从右到左的查找
3、字符串的长度
	name = "ameameame"
	print(len(name))  # len是能弄清楚字符串的长度  name长度为9  提示 空格也算字符
4、字符串的.sprit()用法
	# .strip是去除字符串指定首尾的字符,默认不指定的时候则是去除首尾空格
    name = "      ameameame    "
    print(name.strip())  # ameameame 去除了首尾空格
    name = "%%ameameame%%"
    print(name.strip("%"))  # ameameame 去除了首尾%
    name = "%%ameame%a%m%eame%%"
    print(name.strip("%"))  # ameame%a%m%eame  只能去首尾,中间的不能去除
    # 如何才能去除左边的保留右边的(.lstrip)
    name = "%%ameameame%%"
    print(name.lstrip("%"))  # ameameame%%
    # 如何才能去除右边的保留左边的(.rstrip)
    name = "%%ameameame%%"
    print(name.rstrip("%"))  # %%ameameame
5、字符串的判断在不在字符串里面(in      not in)
	name = "ameameame"
    print("a" in name)  # True
    print("q" not in name)  # False
6、字符串的.split()用法
	str = "1!2!3!4!5!6!7!8!9"
    list = str.split("!")
    print(list)  # ['1', '2', '3', '4', '5', '6', '7', '8', '9']
    # 因此可以看出字符串转换成了列表,切割的"!"也不会被保留,所以切记,以后碰到字符串转列表就可以用.split用法。
    list1 = str.split("!",maxsplit=2) # print(list)  # ['1', '2', '3!4!5!6!7!8!9']
    # 默认.split是从左到右切割
    list2 = str.rsplit("!",maxsplit=2)  # ['1!2!3!4!5!6!7', '8', '9']
7、字符串的循环方法
	name = "ameameame"
	for i in name
    	print(i)  # 依次获取字符串中单个单个的字符
        
8、把字符串全部变成大写或者小写
	name = "amEaMeame"
    # 全部转成大写
    print(name.upper())  # "AMEAMEAME"
    # 全部转成小写
    print(name.lower())  # "ameameame"
    # 应用于图片验证码
    
9、字符串开头结尾
    res = 'Ame Yuki lalala'
    # 判断字符串是否以Ame开头
    print(res.startswith('Ame'))  # True
    # 判断字符串是否以lalala结尾
    print(res.endswith('lalala'))  # True
 
10、格式化输出 format
	2.1
    res = "班上的时常达{}年的练习生{}, 他的爱好就是{}," \
          "并且在他{}岁的时候, 编出了鸡你太美舞蹈".format(2.5, "小明", "唱 跳 rap 篮球", 60)
    print(res)
    班上的时常达2.5年的练习生小明, 他的爱好就是唱 跳 rap 篮球,并且在他60岁的时候, 编出了鸡你太美舞蹈
    

    res = "班上的时常达{0}{0}年的练习生{1}{1}, 他的爱好就是{2}{2}," \
    	  "并且在他{3}{3}岁的时候, 编出了鸡你太美舞蹈".format(2.5, "小明", "唱 跳 rap 篮球", 60)
    print(res)
    班上的时常达2.52.5年的练习生小明小明, 他的爱好就是唱 跳 rap 篮球唱 跳 rap 篮球,并且在他6060岁的时候, 编出了鸡你太美舞蹈

	2.2 
	res = "班上的时常达{year}年的练习生{name}, 他的爱好就是{hobby},".format(name="小明", year=2.5, hobby="篮球")
	print(res)
    班上的时常达2.5年的练习生小明, 他的爱好就是篮球,	
    
11、统计字符串中字符出现的次数
	name = "ameameame"
	print(name.count("a"))  # 3 统计"a"出现的次数
    print(name.count("a", 0, 4))  # 2 在索引0-3 统计"a"出现的次数
    
12、把字符串首字母都变成大写(可以用于标题)
	res = 'my name is ame nis IO KSn kls  '
	print(res.title())  # 将所有英文单词首字母大写   My Name Is Ame Nis Io Ksn Kls 
	print(res.capitalize())  # 首字母大写 后面统一变小写    My name is ame nis io ksn kls
    
13、判断字符串是否为纯数字
	guess_age = input('请输入您的年龄>>>:')
    if guess_age.isdigit():
    	将字符串的数字转为整型的数字
        guess_age = int(guess_age)  
    else:
        print('请输入纯数字')
        
 14、文本功能 替换关键字
	res = "my name is Ame Ame Ame"
    res.replace('Ame', 'yuki')  # my name is yuki yuki yuki
    res.
 15、列表转换成字符串 .join
	list = ["1", "2", "3", "4", "5", "6"]
	print(",".join(list))  # 1,2,3,4,5,6
    # 切记 只能转换列表是字符串你类型

1.3 列表

1、列表的查找(索引)
	list = [1, 2, 3, 4, 5, 6]
    list[0]  # 1
    list[-1]  # 6
2、列表的查找(切片)
	list = [1, 2, 3, 4, 5, 6]
    list[0:5]  # 默认步长为一  [1, 2, 3, 4, 5] 
    list[0:5:2]  # [1, 3, 5]
3、列表中元素的个数 len
	list = [1, 2, 3, 4, 5, 6]
    len(list)  # 6
4、 列表的增删改查
	list = ["ame", "yuki", "vlicecream"]
    list[0] = "yuki"
5、列表增加元素 append 尾部追加
	list = ["ame", "yuki", "vlicecream"]
    list.append["monica"]  # list =  list = list = ["ame", "yuki", "vlicecream", "monica"]
6、列表删除元素 del remove pop
	# del
	list = ["ame", "yuki", "vlicecream"]
    del list[0]  # list = ["yuki", "vlicecream"]
    # remove  指名道姓的删除
    list = ["ame", "yuki", "vlicecream"]
    list.remove("ame")  # list = ["yuki", "vlicecream"]
    # pop
    list = ["ame", "yuki", "vlicecream"]
    list.pop()  # 如果没有加索引,那么是默认尾部弹出 也就是删除尾部,但是这个传出来的值是尾部的值   list = ["ame", "yuki"]
   
7、列表插入元素
	list = ["ame", "yuki", "vlicecream"]
    list.insert(0, "monica")  #list = ["monica", "ame", "yuki", "vlicecream"]
    
8、拓展列表
	list = ["ame", "yuki", "vlicecream"]
    list1 = ["am", "yuk", "vlicecrea"]
    list.extend(list1)
    print(list)  # ['ame', 'yuki', 'vlicecream', 'am', 'yuk', 'vlicecrea']
    
9、统计列表元素出现的个数
    list = ["ame", "yuki", "vlicecream"]
    print(list.count("yuki"))  # 1 统计列表中某个元素出现的次数

10、清理列表
    list.clear()  # 清空列表
    print(name_list)  # list = []

11、列表的升序和降序
	l2 = [11,88,22,44,33,77,66,55]
    l2.sort()  # 排序  默认是升序
    print(l2)  # [11, 22, 33, 44, 55, 66, 77, 88]
    l2.sort(reverse=True)  # reverse=True 降序
    print(l2)  # [88, 77, 66, 55, 44, 33, 22, 11]

    l2.reverse()  # 倒序
    print(l2)

1.4 字典

1. 字典的查找(key)
    dirt = {"name": "Ame",
            "age": 18,
            "hobby": "唱跳Rap篮球"}
    print(dirt["name"])  # Ame
    # 输入不存在的key 会报错
2. 字典keys:Value的个数(len)
    dirt = {"name": "Ame",
            "age": 18,
            "hobby": "唱跳Rap篮球"}
    print(len(dirt))  # 3

3.字典的增改
    dirt = {"name": "Ame",
            "age": 18,
            "hobby": "唱跳Rap篮球"}
    dirt["name"] = "yuki"
    print(dirt)  # {'name': 'yuki', 'age': 18, 'hobby': '唱跳Rap篮球'}
    dirt["id_card"] = 123456789
    print(dirt)  # {'name': 'yuki', 'age': 18, 'hobby': '唱跳Rap篮球', 'id_card': 123456789}

4. 字典的成员运算 in      not in
    dirt = {"name": "Ame",
            "age": 18,
            "hobby": "唱跳Rap篮球"}
    print("name" in dirt)  # True
    print("hobby" not in dirt)  # False

5. 字典的删除(del   pop)
	# del
	dirt = {"name": "Ame",
        "age": 18,
        "hobby": "唱跳Rap篮球"}
    del dirt["name"]
    print(dirt)  # {'age': 18, 'hobby': '唱跳Rap篮球'}
    # pop
    dirt = {"name": "Ame",
        "age": 18,
        "hobby": "唱跳Rap篮球"}
    dirt.pop("name")
    print(dirt)  # pop 则是指定key就去弹出,如果不指定 则默认尾部弹出
    
6. 字典的keys values items
	# keys 显示出所有的key
    dirt = {"name": "Ame",
            "age": 18,
            "hobby": "唱跳Rap篮球"}  
    print(dirt.keys())  # dict_keys(['name', 'age', 'hobby'])
    # values 显示出所有的value
    dirt = {"name": "Ame",
        "age": 18,
        "hobby": "唱跳Rap篮球"}
	print(dirt.values())  # dict_values(['Ame', 18, '唱跳Rap篮球'])
    # items 将items()的结果可以直接看成是列表[]套小列表()
    dirt = {"name": "Ame",
            "age": 18,
            "hobby": "唱跳Rap篮球"}
    print(dirt.items())  # dict_items([('name', 'Ame'), ('age', 18), ('hobby', '唱跳Rap篮球')])
    for k, v in dirt.items():  # 解压赋值 结合 for循环
        print(k, v)  # name Ame   age 18   hobby 唱跳Rap篮球
        
7.字典的循环
    dirt = {"name": "Ame",
            "age": 18,
            "hobby": "唱跳Rap篮球"}
    for i in dirt:
        print(i)  # name  age   hobby
  
8.字典的推荐使用查找方法(get)
	dirt = {"name": "Ame",
        "age": 18,
        "hobby": "唱跳Rap篮球"}
	print(dirt.get("name"))  # Ame
    dirt = {"name": "Ame",
        "age": 18,
        "hobby": "唱跳Rap篮球"}
    print(dirt.get("id card"))  # None
    print(dirt.get("id card", 123456))  # 123456
    dirt.get("name", "yuki")  # Ame
    print(dirt)  # {'name': 'Ame', 'age': 18, 'hobby': '唱跳Rap篮球'}
    # get 假如输入没有的key是不会报错的,会返回None ,所以推荐用get
    
9. 字典的创建方法
	I   dirt = {'name': 'Ame', 'age': 18, 'hobby': '唱跳Rap篮球'}
    II  diet = {key1:value1, key2:value2}
    III list = [
        ['username','jason'],
        ['password',123],
        ['hobby',['read','run']]
        ]
        dirt = {}
        for k, v in list:
            dirt[k] = v
        print(dirt)
        # 列表转字典 方法,一定要注意
        
 10. 字典的清空(clear)
	dirt = {'name': 'Ame', 'age': 18, 'hobby': '唱跳Rap篮球'}
    dirt.clear()
    print(dirt)  # {}
    
11. 快速生成字典(fromkeys)
	dict.fromkeys()  # 快速先生成一个字典
    list = ['username','pwd','hobby']
    res = dict.fromkeys(l,None)
	print(res)
    
12. 字典删除键值对(popitem)
	dirt = {'name': 'Ame', 'age': 18, 'hobby': '唱跳Rap篮球'}
    dirt.popitem()
    print(dirt)  # 字典弹出键值对 尾部弹出
    
13. 字典的修改(setdefault, update)
	# setdefault
	dict.setdefault()  重点
    dd = {'name':'jason','pwd':123}
    dd.setdefault('age',18)  # 键不存在 则新建
    res = dd.setdefault('name','egonSBSBSB')  # 键存在不修改 而是获取到键对应的值
    print(dd,res)  # {'name': 'jason', 'pwd': 123, 'age': 18} jason
	# update
    dict.update()
    dd = {'name':'jason','pwd':123}
    dd.update({'age':18})  # 键不存在 则新建
    dd.update({'name':'EGONDSB'})  # 键存在则修改
    print(dd)
    # 还不如使用下列方式
    dd['age'] = 18
    dd['name'] = 'jason'

1.5 元组

1. 什么是元组
	小括号括起来,里面可以装N多元素的,以逗号隔开,元素可以是任意类型,但是元组是不可变类型,要注意元组只有一个元素时,一定要有逗号,所以以后凡是容器类型,只有一个元素时都不能省略逗号
2. 按索引取值
	tup = (1, 2, 3, 4, 5)
    print(tup[0])  # 1
    print(tup[-1])  # 5
3.	"""
	笔试题
    元组内元素的内存地址不能修改
    但是如果元素是可变类型 那么元素值可以改
	"""
4. 切片
	跟列表一致
   
5. 长度(len)
	跟列表一致
    
6. 成员运算(in   not in)
	跟列表一致
    
7. 循环
	tup = (1, 2, 3, 4, 5)
    for i in tup
    	print(i)

1.6 集合

1.什么是集合
	大括号括起来 内部可以存放多个元素
	元素与元素之间逗号隔开  元素只能是不可变类型(整型 浮点型 字符串 元组)
    
2.集合的应用场景
	只有两种情况才会考虑使用集合
        1.关系运算
            两个群体之间判断 交叉并集
                共同好友 共同关注 共同点赞...
        2.去重操作
            去除重复的元素
            
3. 集合的定义
	# 因为跟字典很像,所以定义空{}的时候 默认是空字典 所以需要加set来声明这是集合
    
4. 集合的去重操作
	# 去重不保留顺序
	l = [11,22,33,22,22,33,11,22,55,66,66,77,77]
    set = set()
    for i in l:
        if i not in set:
            set.add(i)
    print(set)
	
    
    # 去重保留顺序
	l = [11,22,33,22,22,33,11,22,55,66,66,77,77]
    new_l = []
    for i in l:
        if i not in new_l:
            new_l.append(i)
    print(new_l)

5. 关系运算
	f1 = {'jason','egon','kevin','tony'}
	f2 = {'jason','jack','oscar','kevin'}
I 共同好友
	f1 & f2
II f1独有的好友
	f1 - f2
III f2独有的好友
	f2 - f1
IV 所有的好友
	f1 | f2
V  各自的好友 不包括共同好友
	f1 ^ f2
6. 父集 子集
"""
父级:A包含B 那么A就是B的父级
子级:A包含B 那么B就是A的子级
"""
s1 = {1,2,3,4,5}
s2 = {1,2,3}
print(s1 > s2)  # True
print(s1 < s2)  # False

二、可变类型与不可变类型

1.1 可变类型

"""
可变类型
    值改变 内存地址不变
"""
# 可变类型
l1 = [11,22]
print(id(l1))  # 2133952624128
l1.append(666)
print(id(l1))  # 2133952624128

1.2 不可变类型

"""
不可变类型
    值改变 内存地址一定变
"""
# 不可变类型
    a = 1
    print(id(a))  
    a = 2
    print(id(a))  


posted @ 2021-06-17 17:02  Ame林汀  阅读(119)  评论(0)    收藏  举报