zoukankan      html  css  js  c++  java
  • Python自学,Day2Python基础

    本节内容

      1.sys模块

      2.列表、元组操作

      3.字符串操作

      4.字典操作

    1、模块初识                                              

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎任何功能都有相应的Python库支持(看着老NB了哈......)

    • sys  系统模块
    1 import sys
    2 print(sys.path)

    含义:打印系统环境变量列表

    • os  系统模块
    1 import os
    2 
    3 cmd_res=os.system("df -h")#打印到屏幕上,不保存结果
    4 
    5 print("打印结果:",cmd_res)#0代表命令执行的结果为成功

    ps:没有搞明白这个具体有什么用.....

    调用外部非标准的模块

    规则:

    1、调用的非标准模块时,先为当前路径变量寻找,如果找不到则从全局变量中寻找;

    2、如果从当前路径变量和全局环境变量中均无该变量,则程序会提示:No module named 'userloging'  #'userloging'为调用的外部变量

    3、解决方案:

    1)、将需调用的模块copy至当前环境变量中

    2)、将需调用的模块copy至全局环境变量中

    3)、程序调用时,声明调用模块的路径

    2. what is .pyc?                                            

    简述Python的运行过程

    PyCodeObject和pyc文件:PyCodeObject则是Python编译器真正编译成的结果;pyc是预编译后的字节码文件;

    当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

    当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

    所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

    此处跳过一堆的数据和数据运算相关的内容。。。

    3、列表、元组操作                                           

    列表的含义与数组相同;元组为只读数组,不可更改。

    (1)、定义列表

    names=["shang","quan","xin","ace"]

    数组角标从左至右依次为0、1、2...

    (2)、获取列表中元素

      1)、单个元素

    1 names=["shang","quan","xin","ace"]
    2 
    3 print(names[1])

    输出结果:quan

      当取元素较多,直接取最后一个元素时

    1 names=["shang","quan","xin","ace"]
    2 print(names[-1])

    输出结果:ace  备注:-1代表从最后一个元素开始读取

      2)、多个元素

    1 names=["shang","quan","xin","ace"]
    2 print(names[1],names[3])

    输出结果:quan ace

      3)、连续多个元素(切片)

    1 names=["shang","quan","xin","ace"]
    2 print(names[1:3])

    输出结果:['quan', 'xin']  遵循左闭右开的原则

      从第一位开始获取

    1 names=["shang","quan","xin","ace"]
    2 print(names[0:1])

    输出结果:['shang']  备注:0可以不写,结果相同

    1 names=["shang","quan","xin","ace"]
    2 print(names[:1])

      倒叙切片

    1 names=["shang","quan","xin","ace"]
    2 print(names[-3:-1])

    输出结果:['quan', 'xin']  备注:因左闭右开规则,-1位的元素并无法取到

      可以取到最后一位元素

    1 names=["shang","quan","xin","ace"]
    2 print(names[-3:])

    输出结果:

    ['quan', 'xin', 'ace']  

    (3)、添加元素

      1)、最后一位添加(append)

    1 names=["shang","quan","xin","ace"]
    2 names.append("pm")
    3 print(names)

    输出结果:['shang', 'quan', 'xin', 'ace', 'pm']

      2)、任意位置添加(insert)

    1 names=["shang","quan","xin","ace"]
    2 names.insert(1,"pm")
    3 print(names)

    输出结果:['shang', 'pm', 'quan', 'xin', 'ace']  其中“1”代表需要插入的位置

    (4)、改元素

      改任意位置元素

    1 names=["shang","quan","xin","ace"]
    2 names[3]="Ace"
    3 print(names)

    输出结果:['shang', 'quan', 'xin', 'Ace']  直接改变数组中参数的值

    (5)、删除

      1)、del 删除

    1 names=["shang","quan","xin","ace"]
    2 del names[3]
    3 print(names)

    输出结果:['shang', 'quan', 'xin']

      2)、remove删除

    1 names=["shang","quan","xin","ace"]
    2 names.remove("xin")
    3 print(names)

    输出结果:['shang', 'quan', 'ace']

      3)、pop删除

    1 names=["shang","quan","xin","ace"]
    2 names.pop()
    3 print(names)

    输出结果:['shang', 'xin', 'ace']  不输入角标时,默认删除最后一个元素

      设置角标时,则同del

    1 names=["shang","quan","xin","ace"]
    2 names.pop(1)
    3 print(names)

    输出结果:['shang', 'xin', 'ace']

    (6)、获取元素角标  index

    1 names=["shang","quan","xin","ace"]
    2 index=names.index("xin")
    3 print(index)

    输出结果:2  使用index时获取元素角标

    (7)、统计数组中元素的个数  count

    1 names=["shang","quan","xin","ace","xin"]
    2 count=names.count("xin")
    3 print(count)

    输出结果:2  使用count进行统计

    (8)、清空数组  clear

    1 names=["shang","quan","xin","ace","xin"]
    2 names.clear()
    3 print(names)

    输出结果:[]

    (9)、反转元素顺序  reverse

    1 names=["shang","quan","xin","ace","xin"]
    2 names.reverse()
    3 print(names)

    输出结果:['xin', 'ace', 'xin', 'quan', 'shang']

    (10)、排序  sort

    1 names=["shang","quan","xin","ace","xin"]
    2 names.sort()
    3 print(names)

     输出结果:['ace', 'quan', 'shang', 'xin', 'xin']

    备注:排序优先级为:特殊符号>数字>大写字母>小写字母(阿斯玛值排序)

    (11)、合并  extend

    names=["shang","quan","xin","ace","xin"]
    names2=["gome"]
    names.extend(names2)
    print(names)

    输出结果:['shang', 'quan', 'xin', 'ace', 'xin', 'gome']

    备注:name2依然存在

    (12)、删除数组

     1 del names2 

    (13)、复制 copy

       1)、浅copy

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names.copy()
    3 print(names)
    4 print(names2)

    输出结果:

    ['shang', 'quan', 'xin', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['pm', 'python', 'pycharm'], 'ace', 'xin']

      修改names2中元素

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names.copy()
    3 names2[2]="XIN"
    4 print(names)
    5 print(names2)

    输出结果:

    ['shang', 'quan', 'xin', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'XIN', ['pm', 'python', 'pycharm'], 'ace', 'xin']

      修改name2数组中数组元素

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names.copy()
    3 names2[3][0]="PM"
    4 print(names)
    5 print(names2)

    输出结果:

    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']

    备注:copy只复制了第一层元素,第二层元素则时复制的空间内存地址,当空间内容修改,原时的数组names也修改

      数组直接赋值

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names
    3 names[2]=""
    4 names2[3][0]="PM"
    5 print(names)
    6 print(names2)

    输出结果:

    ['shang', 'quan', '鑫', ['PM', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', '鑫', ['PM', 'python', 'pycharm'], 'ace', 'xin']

    备注 :数组赋值,只是数组的内存地址赋值,两个数组指向的是同一个内存地址

      其他写法

     1 import copy
     2 
     3 names=["shang","quan",["pm","python","pycharm"],"ace","xin","python"]
     4 names2=copy.copy(names)
     5 names3=names[:]
     6 names4=list(names)
     7 
     8 names[4]=""
     9 names2[2][0]="PM"
    10 names3[2][1]="PYTHON"
    11 names4[2][2]="PYCHARM"
    12 print(names)
    13 print(names2)
    14 print(names3)
    15 print(names4)

    输出结果:

    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', '鑫', 'python']
    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', 'xin', 'python']
    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', 'xin', 'python']
    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', 'xin', 'python']

    备注:引用copy模块,name2是用copy函数下的浅copy,name3是用完全切片,name4是使用工厂函数

      2)、深copy

    1 import copy
    2 
    3 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    4 names2=copy.deepcopy(names)
    5 names[2]=""
    6 names2[3][0]="PM"
    7 print(names)
    8 print(names2)

    输出结果:

    ['shang', 'quan', '鑫', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']

    备注:引用copy模块,使用copy.deepcopy(),两个独立的数组元素

      3)、列表循环打印

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=copy.deepcopy(names)
    3 names[2]=""
    4 names2[3][0]="PM"
    5 print(names)
    6 print(names2)
    7 
    8 for i in names2:
    9     print(i)

    输出结果:

    ['shang', 'quan', '鑫', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']
    shang
    quan
    xin
    ['PM', 'python', 'pycharm']
    ace
    xin

    备注:循环打印,只需打印索引角标即可,ps,如此简单.....

    (14)、定义元组

    1 names=('shang','quan','xin')
    2 print(names)

    输出:('shang', 'quan', 'xin')

    备注:元素不可更改,所以无可编辑功能

    程序练习 

    请闭眼写出以下程序。

    程序:购物车程序

    需求:

    1. 启动程序后,让用户输入工资,然后打印商品列表
    2. 允许用户根据商品编号购买商品
    3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 
    4. 可随时退出,退出时,打印已购买商品和余额

     

     1 product_list=[
     2     ('iphone',5800),
     3     ('mac pro',12000),
     4     ('starbucks',37),
     5     ('python',10000),
     6     ('book',45),
     7     ('apple',6),
     8     ('bike',800)
     9 ]
    10 product_neeeded=[]
    11 while True:
    12     salary = input("Input your salary:")
    13     if salary.isdigit():#判断是否是数字
    14         salary=int(salary)
    15         break
    16     else:
    17         print("Please input the number!")
    18 while True:
    19     for item in product_list:
    20         print(product_list.index(item), item)
    21     shopping=input("Input the product number of you need: ")
    22     if shopping.isdigit():
    23         shopping=int(shopping)
    24         if shopping >=0 and shopping<len(product_list):
    25             price=product_list[shopping][1]
    26             if price<=salary:
    27                 salary-=price
    28                 product_neeeded.append(product_list[shopping])
    29                 for added in product_neeeded:
    30                     print(added)
    31                 print("remind banlance:",salary)
    32                 shopping_reslut=input("do you want continue? Y/N:")
    33                 if shopping_reslut=="Y":
    34                     continue
    35                 else:
    36                     break
    37             else:
    38                 print("the salary is not enough!remind banlance:",salary)
    39                 shopping_reslut = input("do you want continue? Y/N:")
    40                 if shopping_reslut == "Y":
    41                     continue
    42                 else:
    43                     break
    44         else:
    45             print("Please input the right number of product!")
    46     else:
    47         print("Please input the right number of product!")
    48 print("------------shopping_list------------")
    49 for added in product_neeeded:
    50     print(added)
    51 print("remind banlance:", salary)
    View Code

    备注:第一个自己码的代码,如有不妥的地方,欢迎大神开喷~(心境跟第一次做C课程设计一样儿一样儿的)

     4、字符串操作 string                                            

    • capitalize  首字母大写
    1 name="ace shang"
    2 print(name.capitalize())

    输出结果:Ace shang

    • count  统计个数
    1 name="ace shang"
    2 print(name.count("a"))

    输出结果:2  统计string中a的个数

    • center  将输入的字符串剧中
    1 name="ace shang"
    2 print(name.center(50,"-"))

    输出结果:--------------------ace shang---------------------  备注:输出50个字符,不足则以“-”补充,并将name居中

    • endswith  校验字符串结尾
    1 name="aceshang@qq.com"
    2 print(name.endswith(".com"))

    输出结果:True  可以用于校验输入内容格式是否满足要求,例如邮箱结尾

    • expandtabs  将\t转换成要求的空格数输出
    1 name="ace\tshang@qq.com"
    2 print(name.expandtabs(3))

    输出结果:ace   shang@qq.com

    • find   查询输入项在字符串中位置
    1 name="aceshang@qq.com"
    2 print(name.find("a"))

    输出结果:0

    1 name="aceshang@qq.com"
    2 print(name.find("p"))

    输出结果:-1  不存在时,默认-1

    1 name="aceshang@qq.com"
    2 print(name.find("ace"))

    输出结果:0  若输入项是一串,按第一个字符查询,

    • format  构造格式
    1 name="my name is {} and my age is {}"
    2 print(name.format("ace",29))

    输出结果:my name is ace and my age is 29

      角标定义位置

    1 name="my name is {0} and my age is {1}"
    2 print(name.format("ace",29))

    输出结果:my name is ace and my age is 29

      按定义的角标与输入项对应

    1 name="my name is {1} and my age is {0}"
    2 print(name.format("ace",29))

    输出结果:my name is 29 and my age is ace

      参数定义位置

    1 name="my name is {name} and my age is {age}"
    2 print(name.format(name="ace",age=29))

    输出结果:my name is ace and my age is 29

    • format_map  字典形式构造格式
    1 name="my name is {name} and my age is {age}"
    2 print(name.format_map({'name':'ace','age':30}))

    输出结果:my name is ace and my age is 30  数据字典:{'name':'ace','age':30}

    • index  查询索引值
    1 name="my name is {name} and my age is {age}"
    2 print(name.index("m"))

    输出结果:0

    • isalnum  是否是阿拉伯数字或者英文字母
    1 name="abc1A"
    2 print(name.isalnum())

    输出结果:True

      如果有特殊字符,则为False

    1 name="abc1A$#"
    2 print(name.isalnum())

    输出结果:False

    • isalpha  是否是纯英文字符
    1 name="abcQ"
    2 print(name.isalpha())

    输出结果:True

    • isdecimal  是否是十进制
    1 name="1222"
    2 print(name.isdecimal())

    输出结果:True

    • isdigit  是否是整数
    1 name="12"
    2 print(name.isdigit())

    输出结果:True

    • isidentifier  判读是否是合法的标示符
    1 name="ab12"
    2 print(name.isidentifier())

    输出结果:True  备注:有空格、特殊字符为不合法

    • islower  是否是小写
    • isupper  是否是大些
    • join  链接
    1 name=["a","b","c"]
    2 print("|".join(name))

    输出结果:a|b|c  用指定符号将字符串拼接

    • ljust  左对其
    • rjust  右对其
    1 name="my name is ace"
    2 print(name.ljust(50,"*"))
    3 print(name.rjust(50,"-"))

    输出结果:

    my name is ace************************************   备注:总长度50,不足用定义字符补充 
    ------------------------------------my name is ace

    • lower  变为小写
    • upper  变为大些
    1 name="My Name Is Ace"
    2 print(name.lower())
    3 print(name.upper())

    输出结果:

    my name is ace
    MY NAME IS ACE

    • lstrip  去掉左边的空格和换行(\n)
    • rstrip  去掉右边的空格和换行
    • strip  去调两边的空格和换行
     1 name="     My Name Is Ace\n"
     2 print(name.lstrip())
     3 print(name.rstrip())
     4 print(name.strip())
     5 
     6 #输出结果
     7 My Name Is Ace
     8 
     9      My Name Is Ace
    10 My Name Is Ace
    • maketrans  作字符转换编码
    • translate  字符变换
    1 intab="abcdefghijklmn"
    2 outtab="!@#$%^&*()_+QW"
    3 incode=str.maketrans(intab,outtab)
    4 print("my name is ace".translate(incode))
    5 
    6 #输出结果
    7 Qy W!Q% (s !#%

    备注:先用maketrans编码,然后使用translate进行字符转换

    • replace  替换
    1 name='Ace Angle'
    2 print(name.replace('A','a',1))#将A替换成a,替换个数为1个
    3 
    4 #输出结果
    5 ace Angle
    • rfind  查询最右一位指定内容的角标
    1 name='Ace Angle'
    2 print(name.rfind('e'))
    3 
    4 #输出结果
    5 8   

     备注:最后一个e的角标值

    • split  按照分隔符将字符串分割成数组
    1 1 name='Alce Angle'
    2 2 print(name.split())
    3 3 print(name.split('l'))
    4 4 
    5 5 #输出结果
    6 6 ['Alce', 'Angle']   #默认空格分割 
    7 7 ['A', 'ce Ang', 'e']    #按照'l'进行分割
    • swapcase  大小字母互换
    1 name='Ace Angle'
    2 print(name.swapcase())
    3 
    4 #输出结果
    5 aCE aNGLE
    • title  将每个字符的首字母大写
    1 name='ace angle'
    2 print(name.title())
    3 
    4 #输出结果
    5 Ace Angle

    5、字典操作                                                 

     1 #定义字典
     2 info={
     3     'no101':"Ace Shang",
     4     'no102':"Baobao Feng",
     5     'no103':"Chulan Zhang",
     6     'no104':"Zhenqiu Wang",
     7 }
     8 
     9 #打印资料
    10 print("1:",info) #打印是无序的
    11 
    12 #精确查找,明确知道key值
    13 print("2:",info["no102"]) #当没有改key时,程序报错
    14 
    15 print("3:",info.get('no106'))   #没有该key时,返回none
    16 print("4:",info.get('no103'))   #有该key时,则返回对应的value
    17 
    18 print("5:",'no109' in info)  #判断no109是否在info的字典中
    19 
    20 #修改字典内容
    21 info["no101"]="Ye Wang"
    22 print("6:",info)
    23 
    24 #新增
    25 info["no105"]="Qing Zhuge"
    26 print("7:",info)
    27 
    28 #删除
    29 del info["no104"]
    30 print("8:",info)
    31 
    32 info.pop("no105")
    33 print("9:",info)
    34 
    35 #删除随机项(尽量不用)
    36 info.popitem()
    37 print("10:",info)
    38 
    39 
    40 #输出结果
    41 1: {'no101': 'Ace Shang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang'}
    42 2: Baobao Feng
    43 3: None
    44 4: Chulan Zhang
    45 5: False
    46 6: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang'}
    47 7: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang', 'no105': 'Qing Zhuge'}
    48 8: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no105': 'Qing Zhuge'}
    49 9: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang'}
    50 10: {'no101': 'Ye Wang', 'no102': 'Baobao Feng'}
    • 多级字典嵌套及操作
     1 #多级嵌套
     2 under_one_person={
     3     "NaDouTong":{
     4         "Chulan Zhang":["不摇碧莲","无形大贱","炁体源流","月下观鸟"],
     5         "Baobao Feng":["社会我宝儿姐","机智一逼","阿威十八式","冈本零点零一"],
     6         "Fangxu Zhao":["公司大Boss","心思细腻","知道宝儿姐身份","威望极高"]
     7     },
     8     "Region":{
     9         "Northeast":["leader:高廉","temporary:二壮(高钰珊)"],
    10         "North China":["leader:徐四","temporary:冯宝宝"],
    11         "East China":["leader:窦乐","temporary:肖自在"],
    12         "Central China":["leader:任菲","temporary:黑管儿"],
    13         "Westeast":["leader:华风","temporary:老孟"],
    14         "Westsouth":["leader:郝意","temporary:王震球"]
    15     },
    16     "8Buff":{
    17         "张怀义":["甲申之乱的罪魁祸首","挂:炁体源流","不摇碧莲的爷爷"],
    18         "无根生":["公认的天下第一搅屎棍","挂:神明灵","全性掌门"],
    19         "风天养":["凉山大觋","挂:拘灵遣将","被王家控制,截胡buff"],
    20         "郑子步":["茅山上清","挂:通天箓","陆瑾的好友"],
    21         "周圣":["武当弟子","挂:风后奇门","下落不明"],
    22         "马本在":["炼器师","挂:神机百炼","老马的的曾祖父"],
    23         "阮丰":["干城章嘉峰上修行","挂:六库仙贼","传授于巴伦"],
    24         "谷畸亭":["全性中人","挂:大罗洞观","不详"],
    25         "端木瑛":["不详","挂:双全手","不详"]
    26     }
    27 }
    28 
    29 for i in under_one_person:
    30     print(i)    #打印key     
    31 
    32 #变更value值
    33 under_one_person["8Buff"]["周圣"][2]="也总已习得该技能"
    34 print(under_one_person["8Buff"]["周圣"])
    35 
    36 #输出结果
    37 NaDouTong
    38 Region
    39 8Buff
    40 ['武当弟子', '挂:风后奇门', '也总已习得该技能']
    View Code
    • 字典的其他操作
     1 info={
     2     'no101':"Ace Shang",
     3     'no102':"Baobao Feng",
     4     'no103':"Chulan Zhang",
     5     'no104':"Zhenqiu Wang",
     6 }
     7 
     8 #打印字典values
     9 print("1:",info.values())
    10 
    11 #打印字典的key
    12 print("2:",info.keys())
    13 
    14 #setdefault
    15 print("3:",info.setdefault("no104","Ye Wang"))  #当key存在时,则获取key值对应的value,并输出此value
    16 print("4:",info.setdefault("no105","Si Xu"))    #当key不存时,则新增key值并赋相应的value,同时输出新赋值的value
    17 print("5:",info)
    18 
    19 #update
    20 new_info={1:2,"no101":"Zhiwei Zhang",4:5,}
    21 info.update(new_info)   #将new_info合并至info,并且将已经存在key的value更新为新的value
    22 print("6:",info)
    23 
    24 #item
    25 print("7:",info.items())    #将字典转化成列表
    26 
    27 #循环dict
    28 for key in info:
    29     print(key,info[key])    #key输出字典的key值,info[key]输出key对应的value
    30 
    31 #循环dict之item
    32 for k,v in info.items():    #将字典转换成列表,别按照列表对应的关系进行输出;当数据量大时,勿用该方法
    33     print(k,v)
    34 
    35 #输出结果
    36 1: dict_values(['Ace Shang', 'Baobao Feng', 'Chulan Zhang', 'Zhenqiu Wang'])
    37 2: dict_keys(['no101', 'no102', 'no103', 'no104'])
    38 3: Zhenqiu Wang
    39 4: Si Xu
    40 5: {'no101': 'Ace Shang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang', 'no105': 'Si Xu'}
    41 6: {'no101': 'Zhiwei Zhang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang', 'no105': 'Si Xu', 1: 2, 4: 5}
    42 7: dict_items([('no101', 'Zhiwei Zhang'), ('no102', 'Baobao Feng'), ('no103', 'Chulan Zhang'), ('no104', 'Zhenqiu Wang'), ('no105', 'Si Xu'), (1, 2), (4, 5)])
    43 no101 Zhiwei Zhang
    44 no102 Baobao Feng
    45 no103 Chulan Zhang
    46 no104 Zhenqiu Wang
    47 no105 Si Xu
    48 1 2
    49 4 5
    50 no101 Zhiwei Zhang
    51 no102 Baobao Feng
    52 no103 Chulan Zhang
    53 no104 Zhenqiu Wang
    54 no105 Si Xu
    55 1 2
    56 4 5
    View Code
    • fromkey 初始化生成字典
     1 #初始化生成字典    fromkey
     2 info=dict.fromkeys([1,2,3],"temp")
     3 info2=dict.fromkeys([4,5,6],["冯宝宝",{"name":"张楚岚"},"王也"])
     4 print(info)
     5 print(info2)
     6 
     7 #修改
     8 info[2]="ace"
     9 print(info)
    10 
    11 info2[4]="宝儿姐"
    12 info2[5][1]["name"]="不摇碧莲"
    13 #同浅copy,对于字典赋值的只是路径,改变一个key值对应的value,则其他key中对应value也变更
    14 print(info2)
    15 
    16 #输出结果
    17 {1: 'temp', 2: 'temp', 3: 'temp'}
    18 {4: ['冯宝宝', {'name': '张楚岚'}, '王也'], 5: ['冯宝宝', {'name': '张楚岚'}, '王也'], 6: ['冯宝宝', {'name': '张楚岚'}, '王也']}
    19 {1: 'temp', 2: 'ace', 3: 'temp'}
    20 {4: '宝儿姐', 5: ['冯宝宝', {'name': '不摇碧莲'}, '王也'], 6: ['冯宝宝', {'name': '不摇碧莲'}, '王也']}
    • 三级菜单 略

    因涉及到较多重复代码,后期学到函数时再进行编码....

  • 相关阅读:
    convert image to base64 and post to RESTful wcf
    在android webview实现截屏的手动tounchmove裁剪图片
    How to use jquery ajax and android request security RESTful WCF
    using swfUpload in asp.net mvc
    using HttpClient and sending json data to RESTful server in adroind
    ODP.NET数据访问
    android image watermark
    解决国内不能访问github的问题
    idapro权威指南第二版阅读笔记第九章 交叉引用和绘图功能
    idapro权威指南第二版阅读笔记第二章 逆向和反汇编工具
  • 原文地址:https://www.cnblogs.com/ace722/p/9363925.html
Copyright © 2011-2022 走看看