学习总结——python的基础3(处理json、文件操作、集合、函数)

处理Json


import json

user_info = '''
{"xiaohei":"123456","xiaobai":"456789"}
'''
# json 里一定要是双引号 不能是单引号
 
user_dic = json.loads(user_info)  # 把json串(字符串)转成字典

# load操作字符串,load操作文件
f = open('stu.json')
res = json.loads(f.read())  # load会自动读
print(res)

# stu_info = {'laowang':{'cars':['BMW','Ben-z']}}
# stu_str = json.dumps(stu_info) # 字典转换成json串(字符串)
# print(stu_str)

# fw = open('stu.json','w',encoding='utf-8')
# json.dump(stu_info,fw,indent=4) # dump 会自动写,不需要自己再write

文件操作


首先说一个方法:

#1、简单粗暴直接
#1、先获取到文件里面所有的内容
#2、然后修改内容
#3、清空原来文件里面的内容
#4、重新写入
# f = open('users.txt','a+')
# f.seek(0)
# all_data = f.read()
# new_data = all_data.replace('123','python')
# f.seek(0)
# f.truncate() # 清空文件内容
# f.write(new_data)
# f.flush()
# f.close()
当然是不提倡这种方法的拉~~~下面介绍另一个方法
#2、高效的处理方式
# words words_new
#1、先打开原来的文件,再打开一个空文件
#2、循环处理原文件里面的每一行数据,处理完之后,写到新的文件里面
#3、把原来的文件删掉,把新文件的名字改成原来的文件名

举个例子~
#1、去掉前面的空格
#2、把空行去掉
#3、你替换you
#4、写到新文件里
#5、把原来的文件删掉,把新文件的名字改成原来的文件名
# import os
# with open('words',encoding='utf-8') as fr,open('words_new','w',encoding='utf-8')as fw:  # 打开原有文件word,(with)同时打开一个新文件word_new
# for line in fr:  # 根据行进行循环读取
# line = line.lstrip() # 去掉左边的空格
# if line: # 判断这一行是否有数据
# line = line.replace('你','you') # 替换数据
# fw.write(line) # 写到新文件里面
#
# os.remove('words') # 删除原来的文件
# os.rename('words_new','words') # 把原来的文件删掉,把新文件的名字改成原来的文件名

集合


# 1、天生去重、循环
# 2、关系测试 —— 交集、差集、并集、反向差集、堆成差集
#nums = {6,7,1,2,3,4,5}  # 集合也是无序的
list = [1,2,3,4,5,3,6]
# list_dict = {2,3,4,3}
# print(set(list))

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)) # 父集 list包含所有list_3的值
print(list.symmetric_difference(list_2)) # 对称差集 list在list_2中没有的,list_2在list中没有的 —— 并集减去交集

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) # 删除999 删除一个不存在的会报错
print(list)
list.pop() # 随机删除
print(list)
list.discard(888) # 删除888 删除一个不存在的不会报错
print(list)

函数


函数 就是一个功能,一个方法,简化代码

# def say(name,sex='女'):  # 函数(参数——形参,形式参数,变量)
def calc(x,y):
res = x*y
return res # 返回一个值
# print(res) # 上面有return,所以这句话永远都不会执行到

# 在函数里面的变量全都是局部变量,它只能在函数里面使用,函数执行结束那么就没有这个变量了
# 函数必须得调用才会执行
# 函数里面如果碰到return,函数立即结束

举一个栗子!~

# 1、写一个校验输入的字符串是否为小数的程序
# 1 0.12 -12.3
# 1、只有一个小数点 判断小数点个数
# 2、正小数的情况下,小数点左右两边都为整数的话,才合法 0.12分割成[0,12]
# 3、负小数的情况下,小数点右边整数,左边必须负号开头,并且只有一个负号


def check_float(s):
s = str(s)
if s.count('.')==1:
s_list = s.split('.')
# 5.3 [5,3]
# -98.37 [-98,37]
left = s_list[0] # 小数点左边
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
# print(check_float(1.8)) #True
# print(check_float(-2.4)) #True
# print(check_float('-s.5')) #False
# print(check_float('5.a2')) #False
# print(check_float('-a.65d')) #False
# print(check_float(-5-1.5--0.3-2.1)) #True

猜你喜欢

转载自www.cnblogs.com/Printwj/p/9198494.html
今日推荐