处理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
浙公网安备 33010602011771号