zoukankan      html  css  js  c++  java
  • 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

    #一个函数只做一件事
    #重复的代码就是低级的
    #实现同样的功能,代码越少越好

    总结:
    看起来理论很简单,但是实际一开始做练习还是不知道从何处下手,道理都懂,还是不会。大概唯一的方法就是多练习,类似熟读唐诗三百遍,不会作诗也会吟。






  • 相关阅读:
    【BZOJ2666】[cqoi2012]组装 贪心
    【BZOJ1018】[SHOI2008]堵塞的交通traffic 线段树
    【BZOJ3997】[TJOI2015]组合数学 最长反链
    【BZOJ4052】[Cerc2013]Magical GCD 乱搞
    【BZOJ4059】[Cerc2012]Non-boring sequences 分治
    【BZOJ2529】[Poi2011]Sticks 贪心
    【BZOJ4264】小C找朋友 随机化
    【BZOJ4966】总统选举 线段树+随机化
    【BZOJ3796】Mushroom追妹纸 二分+hash
    【BZOJ1146】[CTSC2008]网络管理Network 树状数组+DFS序+主席树
  • 原文地址:https://www.cnblogs.com/annie19/p/9202337.html
Copyright © 2011-2022 走看看