python基础之json模块、集合、函数学习
json模块:
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
- json.dumps(): 对数据进行编码。
- json.loads(): 对数据进行解码。
example:
# json是一个字符串,只不过是长得像字典
import json
user_info = '''
{"nhy":"123456","lxy":"456789"}
'''
# user_dic = json.loads(user_info) #把json传(字符串)转成字典
# print(user_dic)
# print('user_dic',type(user_dic))
# print('user_info',type(user_info))
f = open('stu.json')
# res = json.loads(f.read())
# print(res)
res = json.load(f) #这个是直接从文件里拿,不需要再读一次文件了,json帮你读
print(res)
# stu_info = { 'laowang':{ 'cars':['BMW','Ben-z'] } }
# stu_str = json.dumps(stu_info) #把字典转成json(字符串)
# print('json....',type(stu_str))
# fw = open('stu.txt','w',encoding='utf-8')
# fw.write(stu_str)
# fw.close()
# fw = open('stu.json','w',encoding='utf-8')
# json.dump(stu_info,fw,indent=4) #不需要咱们自己再write了,人家会帮你写入文件
集合:
集合(set)是一个无序不重复元素的序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}
或者
set(value)
example:
# 1、天生去重、循环
# 2 关系测试 -交集,差集,并集,(反向差集,对称差集)
list = [1,2,3,4,5,3,6}
list_2 =[2,3,5,7,8]
list=set(list)
list_2 = set(list_2)
print(list.intersection(list_2),'交集 ') #交集 取出重复数据
print(list.union(list_2),'并集') # 并集 去重-统一展示
print(list.difference(list_2),'差集') #差集-取出list中有 list_2 没有
list_3 = set([1,3,6])
print(list_3.issubset(list)) #子集 list_3 的值在list 全有
print(list.issuperset(list_3)) #父集
print(list.symmetric_difference(list_2)) # 对称差集 lsit 和 list_3 互相没有的
print('-----------------')
print(list & list_2) #交集
print(list | list_2) # 并集
print(list -list_2) #差集
print(list ^ list_2) # 对称差集
print('---------集合操作--------')
list.add(777) #一次添加一个
print(list)
list.update([888,999])#同时添加多个
print(list)
list.remove(999)
print(list)
list.pop()
print(list)
list.discard(888) # 删除一个不存在的 不会报错
print(list)
函数:
函数是一段定义好的,可以重复使用的代码。大大提供了代码的重复率。
创建函数格式:
def 函数名(参数列表): 函数体
example:
# 函数就是一个功能,一个方法,简化代码
def say(name,sex='男'): #函数,形参,形式参数,变量
#必填参数 位置
#默认值参数 非必填
print('%s 哈哈哈 性别%s'%(name,sex) ) #哈哈哈
#函数体
#在函数里面的变量全都是局部变量,它只能在函数里面使用,函数执行结束那么没有这个变量
#返回值
# 如果需要用到函数的处理结果的话,那么就写return,不需要的话,那就不用写
#函数里面如果碰到return,函数立即结束
def calc(a,b):
res = a * b
return res
def my():
for i in range(100):
print(i)
if i==2:
return
#1、写一个校验输入的字符串是否为小数的程序
# 1、 0.12 --12.3
# -ssdfsd.3
#1、只有一个小数点 判断小数点个数
#2、 正小数的情况下,小数点左边和右边都是整数的话,才合法 [0 ,12]
#3、负小数的情况下 小数点右边整数,左边 必须以负号开头,只有一个负号。
# -5.4
# ['-5','4']
# [1:]
def check_float(s):
s = str(s)
if s.count('.')==1:
s_list = s.split('.')
left = s_list[0] #小数点左边 # '-98'
right = s_list[1]#小数点右边
if left.isdigit() and right.isdigit(): #这里是判断正小数的
return True
if left.startswith('-') and left[1:].isdigit() and right.isdigit():
return True
return False
def my_file(name,content=None):
with open(name,'a+') as f:
f.seek(0)
if content:
f.write(content)
else:
return f.read()
import json
def json_file(name,d=None):
pass
#一个函数只做一件事
#重复的代码就是低级的
#实现同样的功能,代码越少越好
总结:
看起来理论很简单,但是实际一开始做练习还是不知道从何处下手,道理都懂,还是不会。大概唯一的方法就是多练习,类似熟读唐诗三百遍,不会作诗也会吟。