zoukankan      html  css  js  c++  java
  • 2018年11月25日 练习2

    21、请用代码实现:利用下划线将列表的每一个元素拼接成字符串, 
    li = ['alex', 'eric', 'rain']

    li    = ['alex',    'eric',    'rain']
    v="_".join(li)
    print('21.用下划线组成字符串',v)

    22、写代码,有如下列表,按照要求实现每一个功能

    li = ['alex','eric','rain']

    a.计算列表长度并输出

    b.列表中追加元素 “seven”,并输出添加后的列表

    c.请在列表的第1个位置插入元素 “Tony”,并输出添加后的列表

    d.请修改列表第2个位置的元素为 “Kelly”,并输出修改后的列表

    e.请删除列表中的元素 “eric”,并输出修改后的列表

    f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表

    g.请删除列表中的第3个元素,并输出删除元素后的列表

    h.请删除列表中的第2至4个元素并输出删除元素后的列表

    i.请将列表所有的元素反转,并输出反转后的列表

    j.请使用 for、len、range 输出列表的索引

    k.请使用 enumrate 输出列表元素和序号(序号从 100 开始)

    l.请使用 for 循环输出列表的所有元素

    #21、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,
    li    = ['alex',    'eric',    'rain']
    v="_".join(li)
    print('21.用下划线组成字符串',v)
    
    #22、写代码,有如下列表,按照要求实现每一个功能
    li = ['alex','eric','rain']
    #a.计算列表长度并输出
    a=len(li)
    print("22a.计算列表长度并输出",a)
    
    #b.列表中追加元素 “seven”,并输出添加后的列表
    li.extend(["seven"])
    print ("22b.添加字符串",li)
    li.append("append用法")
    print("22b2.添加字符串2",li)
    
    #c.请在列表的第1个位置插入元素 “Tony”,并输出添加后的列表
    li = ['alex','eric','rain']
    li.insert(0,"tony")
    print("c.请在列表的第1个位置插入元素tony:
    ",li)
    
    #d.请修改列表第2个位置的元素为 “Kelly”,并输出修改后的列表
    li[1]="kelly"
    print("d.请修改列表第2个位置的元素为 kelly
    ",li)
    
    # e.请删除列表中的元素 “eric”,并输出修改后的列表
    li = ['alex','eric','rain','test']
    li.remove("eric")
    print("e.请删除列表中的元素 “eric”",li)
    n=li.index('rain')
    li.pop(n)
    print("e2.请删除列表中的元素,通过先查找索引号: ",li)
    n=li.index("test")
    del li[n]
    print("e3.用del的方法删除",li)
    
    # f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
    li = ['alex','eric','rain','test']
    f=li.pop(1)
    print("f.pop用法",f,'
    ',li)
    
    # g.请删除列表中的第3个元素,并输出删除元素后的列表
    del li[2]
    print("g.del法或者pop法都可以实现删除第3个元素",li)
    
    # h.请删除列表中的第2至4个元素并输出删除元素后的列表
    li = ['alex','eric','rain','test',112]
    del li[1:4]
    print ("h.请删除列表中的第2至4个元素",li)
    
    # i.请将列表所有的元素反转,并输出反转后的列表
    li = ['alex','eric','rain','test']
    n=len(li)
    nli=li.copy()#注意设置nli的长度
    for i in li:
        nli[n-1]=i
        n=n-1
    print("i.使用for循环将li反转",nli)
    li = ['alex','eric','rain','test']
    nli2=[]
    n=len(li)
    i=0
    while i<n :
        nli2.append(li[n-1-i])
        i+=1
    print("i2.使用while循环将li反转",nli2)
    li.reverse()
    print("i3.使用reverse循环将li反转",li)
    li = ['alex','eric','rain','test']
    li3=li[n::-1] #注意vip 如果中间不填写则是全部输出,如果填写0 则还有1个剩下没有输出,就是中间数字对应的元素,前面的n也可以不填写
    print("i4.使用索引+步长的方式直接反转",li3)
    
    
    # j.请使用 for、len、range 输出列表的索引
    
    li = ['alex','eric','rain','test']
    print('输出列表索引 for方法')
    for i in li:
        print(li.index(i),i) #list.index()列表有相同元素的,只是的获取(相同元素中的第一个元素)的索引
    print("输出列表索引 len 方法 ")#如果列表内有相同的元素,不建议使用此方法
    x=[]
    for i in li:
        print(len(x),i)#注意 len获取x列表的长度正好同索引号相同
        x.append(i)
    print('输出列表索引 range方法')
    for i in range(len(li)):
        print(i,li[i])
    
    # range用法回顾
    # range() 函数可创建一个整数列表
    # 参数说明:
    # start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    # stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    # step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
    
    # k.请使用 enumerate 输出列表元素和序号(序号从 100 开始
    print("k.enumerate用法")
    for i,j in enumerate(li,start=100):
        print(i,j)
        # enumerate()
        # 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for 循环当中。
        # 语法 enumerate(sequence, [start = 0])
    
    # l.请使用 for 循环输出列表的所有元素
    print("l.请使用 for 循环输出列表的所有元素:")
    for i in li:
        print(i)

    23、写代码,有如下列表,请按照功能要求实现每一个功能
    li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]

    a. 请输出 “Kelly”  

    b.请使用索引找到 'all'元素并将其修改为 “ALL”

    li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]
    # a. 请输出 “Kelly”
    a=li[2][1][1]
    print("23a输出kelly:",a)
    #b.请使用索引找到 'all'元素并将其修改为 “ALL”
    li[2][2]="ALL"
    print("23b.请使用索引找到 'all'元素并将其修改为 ALL
    ",li)

    24、写代码,有如下元组,按照要求实现每一个功能
    tu=('alex','eric','rain')

    a.计算元组长度并输出

    b.获取元组的第2个元素,并输出

    c.获取元组的第 1-2个元素,并输出

    d.请使用 for 输出元组的元素

    e.请使用 for、len、range 输出元组的索引

    f.请使用 enumrate 输出元祖元素和序号(序号从 10 开始)

    # 24、写代码,有如下元组,按照要求实现每一个功能
    
    # a.计算元组长度并输出
    tu=('alex','eric','rain')
    print("a.计算元组长度并输出",len(tu))
    
    #b.获取元组的第2个元素,并输出
    print("b.获取元组的第2个元素,并输出",tu[1])
    
    # c.获取元组的第 1-2个元素,并输出
    print("c.获取元组的第 1-2个元素,并输出",tu[0:2])
    
    # d.请使用 for 输出元组的元素
    print("d.请使用 for 输出元组的元素")
    for i in tu :
        print (" ",i)
    
    # e.请使用 for、len、range 输出元组的索引
    print("e.请使用 for、len、range 输出元组的索引")
    for i in tu:
        print(' ',tu.index(i),i)
    z=()
    for i in range(len(tu)):
        print(' ',i,tu[i])
    
    # f.请使用 enumerate 输出元祖元素和序号(序号从 10 开始)
    print("f.请使用 enumerate 输出元祖元素和序号(序号从 10 开始)")
    for i in enumerate(tu,start=10):
        print (' ',i)
    View Code

    25、有如下变量,请实现要求的功能
    tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])

    a.讲述元祖的特性

    元祖有序且一级元素只读不可编辑

    b.请问 tu 变量中的第一个元素 “alex” 是否可被修改?

    不能

    c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?
    如果可以,请在其中添加一个元素 “Seven”

    能修改

    d.请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?
    如果可以,请在其中添加一个元素 “Seven”

    tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
    
    print(type(tu[1][2]["k2"]))# 使用type类型分析K2是什么类型
    tu[1][2]["k2"].append("seven")
    print(tu)
    
    print(type(tu[1][2]["k3"]))
    print('元祖类型不能编辑')

    26、字典
    dic ={'k1':"v1","k2":"v2","k3":[11,22,33]}

    a.请循环输出所有的 key

    b.请循环输出所有的value

    c.请循环输出所有的 key 和 value

    d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典

    e.请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典

    f.请在 k3 对应的值中追加一个元素44,输出修改后的字典

    g.请在 k3 对应的值的第1个位置插入个元素18,输出修改后的字典

    dic    ={'k1':"v1","k2":"v2","k3":[11,22,33]}
    print("a.请循环输出所有的 key")
    for i in dic.keys():
        print (" ",i)
    
    print("b.请循环输出所有的value")
    for i in dic.values():
        print(" ",i)
    
    print("c.请循环输出所有的 key 和 value")
    for i in dic.items():
        print(" ",i)
    
    print("d.请在字典中添加一个键值对,k4:v4,输出添加后的字典")
    dic.update({"k4":"v4"})
    print (" ",dic)
    dic    = {'k1':"v1","k2":"v2","k3":[11,22,33]}
    dic["k5"]="用索引法添加新键值对"#直接用索引的方法添加新键值对
    print (" ",dic)
    
    
    print("e.请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典")
    dic.update(k1="alex")
    print(" ",dic)ic["k2"]="使用索引法直接修改"# 索引法直接修改
    print(" ",dic)
    
    print("f.请在 k3 对应的值中追加一个元素44,输出修改后的字典")
    dic["k3"].append(44)
    print(" ",dic)
    
    print("g.请在 k3 对应的值的第1个位置插入个元素18,输出修改后的字典")
    dic["k3"].insert(0,18)
    print(" ",dic)

    7、转换
    a.将字符串 s="alex" 转换成列表
    b.将字符串 s="alex" 转换成元祖
    c.将列表 li =["alex","seven"]转换成元组
    d.将元祖 tu =('Alex',"seven")转换成列表
    e.将列表 li=["alex","seven"]转换成字典且字典的key按照10开始向后递增
    print("a.将字符串转换成列表")
    s = "alex"
    new_s=list(s)
    print(new_s)
    
    
    print("b.将字符串 s=alex 转换成元祖")
    b=tuple(s)
    print(b)
    
    print("c.将列表 li =[alex,seven]转换成元组")
    li =["alex","seven"]
    c=tuple(li)
    print(c)
    
    print("d.将元祖 tu =(Alex,seven)转换成列表")
    tu =('Alex',"seven")
    d=list(tu)
    print(d)
    
    print("e.将列表 li=[alex,seven]转换成字典且字典的key按照10开始向后递增")
    li=["alex","seven"]
    e={}
    for i,j in enumerate(li,start=10):#注意enumerate的用法,应该只用于list+for循环
        print(i,j)
        e.update({i:j})# e[i]=j 两种不同的写法 VIP
        #e.update(i=j)这个不能用,把i会默认字符串‘’i
    print(e)
    
    

    
    

    28、转码

    n="老男孩"

    a.将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出

    b.将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出

    n="老男孩"
    
    #a.将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出
    a=n.encode("utf-8")#将字符串改成utf-8编码
    print(a)
    e=a.decode("utf-8")#将原来的编码用utf-8解码
    print(e)
    # encode() 方法以指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。
    # encode()方法语法:
    #    str.encode(encoding='UTF-8',errors='strict')
    # 参数
    # encoding -- 要使用的编码,如: UTF-8,GBK。
    # errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
    # 返回值
    # 该方法返回编码后的字符串,它是一个 bytes 对象
    
    
    
    #b.将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出
    
    b=n.encode("GBK")
    print(b)
    c=b.decode("GBK")
    print(c)
    
    
    # decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 'utf-8'。
    # 语法
    # decode()方法语法:
    # bytes.decode(encoding="utf-8", errors="strict")
    # 参数
    # encoding -- 要使用的编码,如"UTF-8"。
    # errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。
    # 返回值
    # 该方法返回解码后的字符串。

    29、求1-100内的所有数的和
    s1=0
    for i in range(1,101):
        s1=s1+i
    print("29a用for与range循环计算1~100的和",s1)
    s2=sum(range(1,101)) #注意sum能直接求range的和
    print("29b用sum函数直接求range的和",s2)
    
    

     30、元素分类

    有如下值集合 [11,22,33,44,55,66,77,88,99,90],
    将所有大于66的值保存至字典的第一个 key中,
    将小于66的值保存至第二个 key 的值中。

    
    

    即:{'k1':大于 66 的所有值,'k2':小于66 的所有值}

    
    
    a=[11, 22, 33, 44, 55, 66, 77, 88, 99, 90,12]
    a.sort()
    n=len(a)
    b={
       "k1":1,
       "k2":2,
       }
    i=a.index(66)
    b["k1"]=a[i+1:n]
    b["k2"]=a[0:i]
    print("30.元素分类
    ",b)

    31、购物车
    功能要求:
    要求用户输入总资产,例如: 2000
    显示商品列表,让用户根据序号选择商品,加入购物车
    购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    goods = [
    {"name":"电脑","price":1999},
    {"name":"鼠标","price":10},
    {"name":"游艇","price":20},
    {"name":"美女","price":98},

     

    print高级用法
    print("a","b","c",sep="*",end=' ')

    5//2 双斜杠代表整除取整
     


  • 相关阅读:
    virtualenv wrapper安装配置
    Docker 制作镜像-redis
    nginx+redis多进程镜像制作
    Docker 制作镜像
    docker操作常用命令
    docker设置镜像加速
    Centos7安装docker CE社区版
    定时器线程Timer
    linux系统history记录不全的原因
    zabbix监控windows系统的磁盘IO情况
  • 原文地址:https://www.cnblogs.com/python1988/p/10014707.html
Copyright © 2011-2022 走看看