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:\n",li)

#d.请修改列表第2个位置的元素为 “Kelly”,并输出修改后的列表
li[1]="kelly"
print("d.请修改列表第2个位置的元素为 kelly\n",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,'\n',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\n",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.元素分类\n",b)

 

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

 

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

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


posted @ 2018-11-25 10:04  小圣庄  阅读(299)  评论(0编辑  收藏  举报