import json
#json 操作 json就是一个字符串
#将json与字典互转
# with open('demo1.json','w',encoding='utf-8') as fw :
# d ={
# "error_code": 0,
# "stu_info": [
# {
# "id": 314,
# "name": "矿泉水",
# "sex": "男",
# "age": 18,
# "addr": "北京市昌平区",
# "grade": "摩羯座",
# "phone": "18317155663",
# "gold": 100
# },
# {
# "id": 315,
# "name": "矿泉水",
# "sex": "女",
# "age": 27,
# "addr": "上海",
# "grade": "摩羯座",
# "phone": "18317155664",
# "gold": 100
# }
# ]
# }
# s = json.dumps(d,ensure_ascii=False,indent=8) #就是将字典转换为字符串,dumps操作字符串的
# fw.write(s)
# fw.flush()
# fw.close()
# json.dump(d,fw,ensure_ascii=False,indent=4) #直接写入文件 dump操作文件
with open('demo.txt',encoding='utf-8') as fr :
# result = json.load(fr) #直接读文件对象,将内容转换为数组
# print(result)
result = fr.read()
dic = json.loads(result) #将json转换位字典
print(dic)
# 切片 对list的一个取值范围 切片顾头不顾尾,不包含后面的坐标
# list = [1,2,3,4,5,6,7]
# l = list[0:3]
#l = list[:3]#如果冒号前没有值则从0开始 否则要从第几个元素开始就写几
# l = list[1:] 若只有开始的值没有结束的 那么从此坐标开始取值取到最后
# print(l)
# li = [1,1,2,3,4,5,6,7,8,9]
# for i in li:
# if i % 2 != 0 :
# li.remove(i) #循环list的时候不要删除list里面的元素,删除元素会导致list的下标错乱
# 如果需要删除数据, 则做两个list 一样 的数据,循环list1 删除list2 这样可以保证下标的正确性
#li2 = li不能写成赋值的形式,因为指向的是同一个内存地址,浅拷贝
# li2 = li[:]这样写内存地址不一样,互不影响,深拷贝
#import copy
#li3 = copy.deepcopy(li)深拷贝
# print(li)
# 在判断条件中 非空即真 ,非0即真
# 列表生成式 获取偶数
# l = []
# for i in range(1,101):
# if i % 2 == 0:
# l.append(i)
# print(i)
# result = [ str(i).zfill(4) for i in range(1,10) if i < 5]
# print(result)
# 三元表达式
# id_card = '132627199212310014'
#
# if int(id_card[-2]) % 2 !=0:
# print('男')
# else:
# print('女')
#
# sex = '女' if int(id_card[-2]) %2 == 0 else '男' #三元表达式
# print(sex)
# 集合 天生可以去重 集合是无序的
# l = [1,2,1,2,3,4,5]
# print(set(l))
# 空的集合
# s = set()
# s.add() #添加元素
# s.remove() #删除元素
# 交集、并集、差集、对称差集
# 1、交集
# intersection 获取俩集合交集
# xn = ['jiajinju','yangliangliang','zhaowenjing','shenxianlu']
#
# zdh = ['jiajinju','yangliangliang','zhaowenjing','hanmin','liuzhao']
# xn_set = set(xn)
# zdh_set = set(zdh)
# print(xn_set.intersection(zdh_set))#取交集
# print(xn_set & zdh_set) #取交集
# 并集 将两个集合合并 ,去掉重复 获取并集使用union
# print(xn_set.union(zdh_set))
# print(xn_set | zdh_set)
#差集 以第一个集合为基准,去掉两个结合共有的
# print(xn_set.difference(zdh_set))
# print(xn_set - zdh_set)
#对称差集
# print(xn_set.symmetric_difference(zdh_set)) # 获取俩集合中单独存在的数据,去掉共有数据
# print(xn_set ^ zdh_set)
# 函数
# def smile():
# print('啊啊啊')
# smile()
# price = input('请输入价格:')
# def is_float(num):
# print(num)
# num = str(num)
# if num.count('.') == 1:
# left,right = num.split('.')
# if left.isdigit() and right.isdigit():
# print('是正小数')
# elif left.count('-') == 1 and left.startswith('-') and left[1:].isdigit() and right.isdigit():
# print('是负小数')
# else:
# print('不合法的小数')
# else:
# print('不是小数')
# is_float(+-0.5)
# 函数的返回值
# def calc(a,b):
# result = a+b
# return result
# sum = calc(1,2)
# print(sum)
# def more():
# return 1,2,3
# result1,result2,result3 = more()
# print(result1,result2,result3)
# 默认值参数
# def register(name=18,sex='女'):
# print('[%s,%s]写入数据库' % (name,sex))
# register(28,'男')
# def op_file(file_name,content=None):
# if content:
# with open(file_name,'w',encoding='utf-8') as fw:
# # fw.write(content)
# json.dump(content, fw)
# else:
# with open(file_name,encoding='utf-8') as fr:
# result = json.load(fr)
# return result
# # return fr.read()
# result = op_file('demo.txt')
# print(result)
# op_file('users2.txt','xiaoming')
# random模块
import random
import string
# random.choice(string.digits)#获取所有整数
# string.ascii_uppercase #获取所有大写字母
# string.ascii_lowercase #获取所有小写字母
# string.ascii_letters #获取所有大小写字母
# string.punctuation #获取所有特殊符号
# print(random.uniform(1,999)) #获取随机小数
# random.shuffle() #洗牌 将list顺序重新排列
# num = random.randint(1,999999) #随机整数
# print(num)
# num2 = random.sample('abcdefghijklmnopqrstuvwxyz123456',6) #随机取几个 返回list
# num2 = ''.join(num2) #使用空拼接list,变成字符串
#
# print(num2)
# def sms_code():
# result = random.randint(1,999999)
# code = str(result).zfill(6)
# return code
# 产生一批用户,长度6-12,不能重复,以字母开头,包含字母和数字
# 1、循环生成用户,传入数量
# 2、长度在6-12之间,随机生成一个6-12的数字当长度
# 3、将用户添加到集合,避免重复
# 4、判断产生的用户名第一个元素是否不为整数
# def gen_user(num):
# all_user = set()
# while len(all_user) < num :
# length = random.randint(6,12)
# temp = random.sample(string.digits+string.ascii_letters,length)
# user = ''.join(temp)
# if not user[0].isdigit():
# all_user.add(user+'\n')
# return list(all_user)
#
# username = gen_user(7)
# username_new = ''.join(username)
#
# print(username_new)