数据类型内置方法
1.如何理解内置方法
	每个数据类型都自带一些各自独有的功能 
2.如何调用内置方法
	数据类型通过句点符即可调用
  	数据类型.内置方法
    	ps:数据类型可以是具体的某个数据值也可以是数据类型关键字
3.如何查看内置方法
	在pycharm中会自动提示
 	在终端中需要按tab键 然后慢慢补全(等价于linux命令补全)
1.int整型
	1.1.类型转换:将某些数据类型转成整型
    	可以将字符串转成整型 但是需要注意 有特殊情况
      	s1 = '123'
        print(type(s1), s1)  # 字符串里面如果是纯数字 可以转
        s2 = int(s1)
        print(type(s2), s2)  # 字符串里面如果是纯数字 可以转
      如果不是纯数字则无法转换 会直接报错
      	int('hello')
  1.2.进制数转换:将其他进制数转成十进制
    	# 十进制转其他进制数
      # print(bin(100))  # 0b1100100    二进制
      # print(oct(100))  # 0o144        八进制
      # print(hex(100))  # 0x64         十六进制
      # 其他进制转十进制数
      print(int(0b1100100))  # 100
      print(int(0o144))  # 100
      print(int(0x64))  # 100
 
2.float浮点型
	类型转换:将某些数据类型转成浮点型
    	# s1 = '123'
      # print(type(s1), s1)  # 字符串里面如果是纯数字 可以转自动添加.0
      # s2 = float(s1)
      # print(type(s2), s2)  # 字符串里面如果是纯数字 可以转自动添加.0
      s3 = '123.23'
      print(type(s3), s3)  # 字符串里面如果不是纯数字 那么只允许出现一个点号
      s4 = float(s3)
      print(type(s4), s4)  # 字符串里面如果是纯数字 那么只允许出现一个点号 
      
3.str字符串
	3.1.类型转换:可以将所有其他数据类型转成字符串
    	str(任意数据类型)
	3.2.常见操作
  	s1 = 'hello jason'
    # 1.索引取值
    # print(s1[0])  # h
    # print(s1[-1])  # n
    # 2.切片操作
    # print(s1[2:5])  # llo  顾头不顾尾
    # 3.间隔数\方向(默认是1 默认从左往右)
    # print(s1[1:10:1])
    # print(s1[:])  # hello jason
    # print(s1[::])  # hello jason
    # print(s1[::-1])  # nosaj olleh
    # print(s1[-1:-4:-1])  # nos
    # print(s1[-3:])  # son
    # 4.统计字符串中字符的个数(空格也算字符)
    # print(len(s1))  # 11
    # 5.移除字符串首尾指定的字符
    # ss = '$$jason$$'
    # print(ss.strip('$'))  # jason
    # print(ss.lstrip('$'))  # jason$$
    # print(ss.rstrip('$'))  # $$jason
    # username = input('username>>>:')
    # username = username.strip()  # 括号内什么都不写 默认移除首尾的空格
    '''两步合并'''
    # username = input('username>>>:').strip()
    # if username == 'jason':
    #     print('登录成功')
    # else:
    #     print('登录失败')
    # 6.按照指定的字符切割字符串
    # ss = "jason|123|read"
    # print(ss.split('|'))  # ['jason', '123', 'read']  结果是列表  默认全部切割
    # print(ss.split('|', maxsplit=1))  # ['jason', '123|read']  也可以自定义次数
    # print(ss.rsplit('|', maxsplit=1))  # ['jason|123', 'read']  也可以变方向
    # 7.字母大小写
    # res = 'JaSOn666'
    # print(res.upper())  # JASON666
    # print(res.lower())  # jason666
    # print(res.isupper())  # False  (回想之前讲的小规律 布尔值相关 变量名都会有is)
    # print(res.islower())  # False
    """图片验证码忽略大小写:统一转大写或者小写 然后再比较!!!"""
    # code = 'YumT8'
    # print('展示给用户的看的验证码>>>:', code)
    # confirm_code = input('请输入您看到的验证码>>>:').strip()
    # if confirm_code.upper() == code.upper():
    #     print('验证码正确')
    # else:
    #     print('验证码错误')
    # 8.格式化输出 方式1 占位符 方式2 format
    # format用法1:等同于占位符
    # print('my name is {} my age is {}'.format('jason', 18))
    # format用法2:通过索引值反复使用
    # print('my name is {0} {0} my age is {1} {1}'.format('jason', 18))
    # format用法3:通过关键字反复使用
    # print('my name is {name} {name} my age is {age} {age}'.format(name='jason', age=18))
    # format究极用法
    # name = 'jason'
    # age = 18
    # print(f'my name is {name} my age is {age}')
    # 9.判断字符串中是否是纯数字
    # data = input('随便输>>>:').strip()
    # print(data.isdigit())
    # score = input('请输入您的成绩>>>:').strip()
    # if score.isdigit():
    #     score = int(score)
    # else:
    #     print('成绩只能是纯数字')
    # 10.替换指定的字符
    # ss = 'jason jason jason say python so easy!!! jason jason jason'
    # print(ss.replace('jason', 'tony'))  # tony tony tony say python so easy!!! tony tony tony
    # print(ss.replace('jason', 'tony', 2))  # tony tony jason say python so easy!!! jason jason jason
    # 11.拼接字符串
    # print('hello' + 'world')  # helloworld
    # print('hello' * 2)  # hellohello
    # print('|'.join(['hello', 'world', 'jason']))  # hello|world|jason
    # 12.标题相关
    # ss = 'hello world jason JAsOn'
    # print(ss.title())  # Hello World Jason  所有单词首字母变大写
    # print(ss.swapcase())  # HELLO WORLD JASON jaSoN 大小写颠倒
    # print(ss.capitalize())  # Hello world jason jason 首字母大写 其他全部小写
    # 13.判断字符串开头或者结尾
    print('jason say hello'.startswith('j'))  # True
    print('jason say hello'.startswith('ja'))  # True
    print('jason say hello'.startswith('jason'))  # True
    print('jason say hello'.endswith('o'))  # True
    print('jason say hello'.endswith('llo'))  # True
    print('jason say hello'.endswith('hello'))  # True
    
4.列表list
	4.1.类型转换:能够支持for循环的数据类型都可以
  	list('hello')  # ['h', 'e', 'l', 'l', 'o']
		list({'name': "jason", 'pwd': 123})  # ['name', 'pwd']
	4.2.内置方法
  	name_list = ['jason', 'kevin', 'tony', 'jerry', 'oscar']
    # 1.索引相关操作
    # print(name_list[0])  # jason
    # print(name_list[1:4])  # ['kevin', 'tony', 'jerry'] 顾头不顾尾(左包含右不包含)
    # print(name_list[1:])  # ['kevin', 'tony', 'jerry', 'oscar']
    # print(name_list[1:4:2])  # ['kevin', 'jerry']
    # print(name_list[1:4:-1])  # []
    # 2.统计列表中所有数据值的个数
    # print(len(name_list))  # 5
    # 3.增数据
    # append:尾部追加(括号内无论传什么 都当成一个数据值追加)
    # name_list.append('jack')
    # print(name_list)  # ['jason', 'kevin', 'tony', 'jerry', 'oscar', 'jack']
    # name_list.append([111, 222, 333])
    # print(name_list)  # ['jason', 'kevin', 'tony', 'jerry', 'oscar', 'jack', [111, 222, 333]]
    # insert:指定索引插入(括号内无论传什么 都当成一个数据值插入)
    # name_list.insert(0, 'jasonNB')
    # print(name_list)
    # name_list.insert(1, [11, 22, 33, 44])
    # print(name_list)  # ['jasonNB', [11, 22, 33, 44], 'jason', 'kevin', 'tony', 'jerry', 'oscar']
    # extend:扩展列表
    # name_list.extend([11, 22, 33, 44, 55])
    # print(name_list)  # ['jason', 'kevin', 'tony', 'jerry', 'oscar', 11, 22, 33, 44, 55]
    # res = name_list + [1, 2, 3, 4, 5, 6]
    # print(res)  # 不推荐使用加号扩展列表
    # 4.修改数据
    # name_list[0] = 'jasonNB'
    # print(name_list)
    # 5.移除数据
    # del:关键字删除
    # del name_list[0]
    # print(name_list)  # ['kevin', 'tony', 'jerry', 'oscar']
    # pop:弹出数据
    # res = name_list.pop(0)
    # print(name_list)  # ['kevin', 'tony', 'jerry', 'oscar']
    # print(res)  # jason
    # remove:移除数据
    # res = name_list.remove('tony')
    # print(name_list)  # ['jason', 'kevin', 'jerry', 'oscar']
    # print(res)  # None:意思是什么都没有
    # 6.统计列表中某个数据值出现的次数
    # l1 = [11, 22, 111, 11, 11, 11, 11, 11, 22, 11, 22, 111, 11]
    # print(l1.count(11))  # 8
    # 7.按照大写排序
    # l1 = [22, 99, 44, 33, 11, 66, 77, 88]
    # l1.sort()
    # print(l1)  # [11, 22, 33, 44, 66, 77, 88, 99] 默认升序
    # l1.sort(reverse=True)
    # print(l1)  # [99, 88, 77, 66, 44, 33, 22, 11]
5.字典dict
		5.1.类型转换
  		print(dict(name='jason', pwd=123))
    5.2.常见操作
    	d1 = {
          'name': 'jason',
          'pwd': 123,
          'hobby': [11, 22, 33]
      }
      # 1.统计键值对的个数
      # print(len(d1))  # 3
      # 2.按key取值(字典无法使用索引取值 因为字典是无序的!!!)
      # print(d1['name'])  # jason
      # print(d1['xxx'])  # 键不存在会直接报错  不推荐使用
      # print(d1.get('name'))  # jason
      # print(d1.get('xxx'))  # None意思是什么都没有 并且对应的布尔值时False
      # print(d1.get('xxx','键不存在的情况下 可以自定义提示信息'))  # 键不存在的情况下 可以自定义提示信息
      # print(d1.get('pwd','键不存在的情况下 可以自定义提示信息'))  # 123
      # 3.修改数据(语法一致)
      # d1['name'] = 'jasonNB'
      # print(d1)  # {'name': 'jasonNB', 'pwd': 123, 'hobby': [11, 22, 33]}
      # 4.新增数据(语法一致)
      # d1['age'] = 18
      # print(d1)  # {'name': 'jasonNB', 'pwd': 123, 'hobby': [11, 22, 33], 'age': 18}
      '''3和4语法是一样的 但是有区别 如果键存在则是修改 如果键不存在则是新增'''
      # 5.删除数据
      # del d1['name']  # 删除键值对
      # print(d1)  # {'pwd': 123, 'hobby': [11, 22, 33]}
      # res = d1.pop('pwd')  # 弹出数据
      # print(d1)  # {'name': 'jason', 'hobby': [11, 22, 33]}
      # print(res)  # 123
      # 6.常见三剑客
      print(d1.keys())  # dict_keys(['name', 'pwd', 'hobby'])  一次性获取字典所有的键 结果可以看成是列表  支持for循环
      print(d1.values())  # dict_values(['jason', 123, [11, 22, 33]])  一次性获取字典所有的值 结果可以看成是列表  支持for循环
      print(d1.items())  # dict_items([('name', 'jason'), ('pwd', 123), ('hobby', [11, 22, 33])]) 一次性获取键值对
6.元组
	6.1.类型转换
  	与列表一致
 	6.2.常见操作
  	t1 = (11, 22, 33)
    print(type(t1))  # <class 'tuple'>
    t2 = (11)
    print(type(t2))  # <class 'int'>
    t3 = ('hello')
    print(type(t3))  # <class 'str'>
    """
    当元组内只有一个数据值的时候 逗号不能省略
    小建议:以后我们在定义容器类型(内部可以存放多个数据值)的时候 如果只要一个元素 逗号加上
        (11,)
        [11,]
        {'name':'jason',}
    """
    t1 = (11, 22, 33, 44)
    # 1.索引操作
    # 2.统计数据值个数
    # 3.元组内索引绑定值的绑定关系不能改
    # t1[0] = 99  # 报错  索引绑定值的关系不能修改
    """
    笔试题
        t2 = (11, 22, [11, 22])
        t2[-1].append(33)
    上述代码运行完毕后 结果是什么???
    """
    t2 = (11, 22, [11, 22])
    t2[-1].append(33)
    print(t2)  # (11, 22, [11, 22, 33])
7.集合set
		集合内数据值也是无序的!!!
		去重
  		集合内不允许出现重复的数据 如果出现会自动去重
  	关系运算
    	共同好友 共同关注 共同点赞
      f1 = {'jason', 'jerry', 'kevin', 'tony'}  # 小明的好友列表
      f2 = {'jack', 'jerry', 'tony', 'lili'}  # 小李的好友列表
      # 1.求两个人共同好友
      # print(f1 & f2)  #  {'tony', 'jerry'}
      # 2.求两个人所有的好友
      # print(f1 | f2)  # {'tony', 'lili', 'kevin', 'jack', 'jason', 'jerry'}
      # 3.求独有好友
      # print(f1 - f2)  # {'jason', 'kevin'}
      # print(f2 - f1)  # {'jack', 'lili'}
      # 4.求两个人各自独有的好友
      # print(f1 ^ f2)  # {'jason', 'kevin', 'jack', 'lili'}
      # 5.求子集 父集(谁包含谁)
      print(f1 > f2)
      print(f1 < f2)
      print({1, } < {1, 2, 3, 4, })  # True
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号