####st = 'this is python'
 ##st[2] = 'I' # 字符串也是不可以变的,会报错
 ##
 ##st.replace('a', 'y') # 替换,字符串里面最长用的一个方法 默认从前往后全部
 ##st.replace('a', 'y',1)  #1,表示替换次数,只能写一个参数
 ##st1 = str_b.replace('a', 'y',1) #需要用变量去接受,可以命名一样的变量名进行一个覆盖
 ##
 ###并不是对于一个原始数据的修改,而是通过一些方法后用新变量去接收
 ##str_a = 'this is python string   '
 ##str_a.upper() # 全变成大写
 ##str_a.lower() # 全变成小写
 ##
 ##str_a.strip() # 去掉两边空格
 ##str_a.lstrip() #去掉左边空格 left
 ##str_a.rstrip() #去掉右边空格 right
 ##
 ##str_a.capitalize() # 首字母大写
 ##str_a.title() # 每一个单词首字母大写,标题形式
 ##
 ##str_a.split() # 切割字符串,默认使用空格来分割。
 ##str_a.split('i') #当然也可以用制定的字符来分割
 ##str_a.split('i',1) #切割次数
 ##
 ##'*'.join(str_a.split(' '))  #返回值是一个列表,所以可以用join进行拼接
 ##str_a.replace(' ','*')  #也可以替换嘛,灵活运用
 ##str_a.replace(' is','')  #可以做到一个删除的功能
 ##
 ##str_a.find('p') #查找索引,找不到会返回-1,不会报错
 ##str_a.find('i', 3) # 从索引3开始查找
 ##li = ['a','s','d','f']
 ##li.index('d')  #列表里面也有查找索引的方法,但是查找不存在数据的时候会报错,报错会导致程序执行不下去
 ##
 ##str_a.isalpha() # 判断是否全是字母
 ##str_a.isdigit() # 判断是否全是数字
 ##str_a.islower() # 判断是否全是小写
 ##str_a.isupper() # 判断是否全是大写
 ##
 ##
 ##bst = '小白'.encode(encoding='utf8')
 ##bst.decode('utf-8')
 ##
 ##
 ####li = ['阿里巴巴','抖音','快手']
 ####li1= ['让天下没有难做的生意','记录美好生活','更多精彩尽在快手']
 ####print('阿里巴巴',li1[li.index('阿里巴巴')])
 ####
 ### 定义
 ##dict_a = {} # 直接用空的大括号
 ##dict_b = dict(a=1,b=2) # 使用dict函数,键值对 key value
 ##
 ##dict_c = {'a':1, 'b':2, 'c':3, 'd':5, 'e':6}
 ### 取values
 ##dict_c['a'] # 如果key不存在,就会报错
 ##dict_c.get('f') # key没有的话就会返回None
 ##print(dict_c.get('f')) # None 在python里面就是表示没有的意思,类似于数字0的概念,
 ##                             #代表没有返回值,这里就是说没有对应的key和vales值
 ##dict_c.get('f', '没有这个key') # 可以指定当key不存在的时候返回什么值
 ###get 获取 set 修改赋值
 ###查询,没有就添加
 ##dict_c.setdefault('a', 100) # setdefault也是可以的,有的话就返回其value值
 ##dict_c.setdefault('f', 700) # 没有的话就会添加
 ##
 ### 修改values
 ##dict_c['a'] = 100  # 直接修改,当然如果key不存在就会报错
 ##dict_c.update({'b':200}) # 当key存在时更新键值,当不存在则会新加对应的键值
 ##dict_c.update({'g':8})   # 支持多个添加
 ##
 ##dict_c = {'a':1, 'b':2, 'c':3, 'd':5, 'e':6}
 ##dict_c.keys() # 得到字典所有的key值
 ##dict_c.values() #得到字典所有values值
 ##dict_c.items() # key和对应values值
 ##
 ##dict_c.pop('e') # 删除指定的key,返回其对应的values值
 ##dict_c.popitem() # 删除最后一位(本质是随机删除)
 ##
 ##
 ##
 ####se1 = {1,2,3,4}
 ####se2 = {3,4,5,6}
 ####se = set()
 ### 交集
 ##set1 & set2  # set()  空集合用set() 表示,因为{} 表示空字典
 ### 并集
 ##set2 | set1
 ### 差集 哪个写在前面就以谁为主
 ##set2 - set1
 ##set1 - set2
 ##
 ##set1 = {1, 2, 3}
 ### 增加单个
 ##set1.add(4)
 ### update 增加多个
 ##set1.update({2, 3, 5, 8})
 ### 删除
 ##set1.pop() # 同样是随机删除的,也是无序的---按照当前集合前后顺序,默认从前往后删
 ##set1.remove(3) #删除指定的元素
 ##
 ###身份运算符
 ##a = 300
 ##b = 300
 ##a == b #True
 ##a is b #False  身份运算符比较的是内存地址
 ##
 ##a = 123
 ##b = 123
 ##a is b #True  -5到256这个范围内的整数内存地址都是一样的
 ##
 ###成员运算符
 ##1 in [1,2,3,4,5] #True
 ##1 not in [1,2,3,4,5] #False  当前序列类型里面包不包含我这个元素
 ##
 ##
 ##
 ##import random
 ##st = 'awhifnugfiai25827386726d'
 ##print(random.choices(st,k=8))