Python的数据类型6-习题练习及总结

1题:

用Python,利用下划线将列表的每一个元素拼接成字符串,li=[‘alex’,‘eric’,‘rain’]

li=['alex','eric','rain']
v = "_".join(li)
print(v)

在这里插入图片描述

将列表变为li=[‘alex’,‘eric’,123],则如何实现

li=['alex','eric',123]
li[2] = str(li[2])
v = "_".join(li)
print(v)

在这里插入图片描述

5题:

a.计算元组长度并输出

tu = ('alex','eric','rain')
print(len(tu))

在这里插入图片描述

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

tu = ('alex','eric','rain')
print(tu[2])

在这里插入图片描述

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

tu = ('alex','eric','rain')
print(tu [1:])#***********************************未理解

在这里插入图片描述

d.使用for循环输出元组的元素

tu = ('alex','eric','rain')
for v in tu:
    print(v)

在这里插入图片描述

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

tu = ('alex','eric','rain')
for idx in range(len(tu)):
    print(idx)
for elem in tu:
    print(elem)

在这里插入图片描述

f.使用enumrate输出元组的元素和序号(序号从10开始)//enumrate再次创建,并通过数值设置起始位置

tu = ('alex','eric','rain')
tu = ('alex','eric','rain')
for idx ,elem in enumerate(tu ,10):
    print(idx,elem)

在这里插入图片描述

6题。 tu = (“alex”,[11,22,{“k1”:‘v1’,“k2”:[“age”,“name”],“k3”:(11,22,33)},44])

a. 讲述元组的特性

元组的一级元素不能增删改,

b. tu中的第一个元素"alex"是否被修改

不能

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

列表,可以修改

tu = ("alex",
      [11,
       22,
       {"k1":'v1',
        "k2":["age","name"] ,
        "k3":(11,22,33)},
       44])
tu[1][2]["k2"].append("seven")
print(tu)

在这里插入图片描述

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

元组,不可以修改

13题: 有两个列表

a.获取内容相同的元素列表

l1 = [11,22,33]
l2 = [22,33,44]
for i in l1:
    if i in l2:
        print(i)

在这里插入图片描述

b.获取l1中有,l2中没有的元素列表

l1 = [11,22,33]
l2 = [22,33,44]
for i in l1:
    if i not in l2:
        print(i)

在这里插入图片描述

c.获取l2池中有,l1中没有的元素列表

l1 = [11,22,33]
l2 = [22,33,44]
for i in l2:
    if i not in l1:
        print(i)

在这里插入图片描述

d.获取l1,l2中都没有的元素列表

l1 = [11,22,33]
l2 = [22,33,44]
for i in l2:
    if i not in l1:
        print(i)
for i in l1:
    if i not in l2:
        print(i)

在这里插入图片描述

16.分页显示内容

a. 通过for循环创建301条数据,数据类型不限,如:

alex-1 alex1@live.com pwd1
alex-2 alex2@live.com pwd2
alex-3 alex3@live.com pwd3

b. 提示用户输入要查看的野马,当前用户输入指定页码,则显示指定数据

注意:
-每页只显示10条数据
-用户输入的页码是非十进制数字,则提示输入内容格式错误

user_list = [
]
for i in range(1,302):#创建数据
    temp = {'name': 'alex'+str(i), 'email': 'alex@lve.com' + str(i), 'pwd': 'pwd'+str(i)}
    user_list.append(temp)
#print(user_list)测试数据
while True:
    # 每页显示10条数据
    s = input("请输入1,2,3-31页码:")
    s = int(s)
    # user_list[0,10]  第一页
    # user_list[10,20]  第二页
    # user_list[20,30]  第三页
    start = (s-1) * 10 #前面的值
    end = s * 10       #后面的值
    result = user_list[start: end]
    for item in result:
        print(item,type(item)) #type(item)查看item类型

在这里插入图片描述

17题 1,2,3,4,5,6,7,8, 八个数能组成多少种互不相同且无重复的两位数?

方法1:

count = 0
for i in range(1, 9):
    for v in range(1, 9):
        count += 1
count = count - 8
print(count)

方法二:

count = 0
for i in range(1, 9):
    for v in range(1, 9):
        if i != v:
            count += 1
print(count)

方法三:利用列表索引遍历取值

count = 0
ls = [1,2,3,4,5,6,7,8]
for i in range(0,len(ls)):
    for v in range(0,len(ls)):
        if i != v:
            count+=1
print(count)

在这里插入图片描述

99乘法表

方法一:

string =""
for i in range(1,10):
    for j in range(1,i+1):
        string += str(i) +"*"+str(j)+"="+str(i*j )+"\t"
    #break #此时输出1*1-9的循环表
    print(string)
    string = ""

方法二:

for i in range(1,10):
    string = ""
    for j in range(1,i+1):
        string +=str(j) + " * "+str(i) + " = " +str(i*j)+"\t"
    print(string)

方法三:

for i in range(1,10):
    for j in range(1,i+1):
        print(str(j) + " * "+str(i) + " = " +str(i*j)+"\t",end="")
    print("\n",end="")

在这里插入图片描述

注:print的用法 def print(self, *args, sep=’ ‘, end=’\n’, file=None)

print("alex",sep='',end='\n')
print('alex','haifeng','lzp')
print('alex','haifeng','gangniang',sep='搞')

在这里插入图片描述

19题。有一列表nums=[2,7,11,15,1,8,7]找到列表中两个元素相加等于9级集合(EG:【(0,1),(4,5)】)

nums=[2,7,11,15,1,8,7]
a = []
for i in nums:
    for j in nums:
        if i+j == 9:
            a.append((i,j),)
print(a)

找到列表中两个元素相加等于9的索引

a = []
for i in range(len(nums)):
    for j in range(len(nums)):
        if nums[i]+nums[j] == 9:
            a.append((i,j),)
print(a)

未做重复判断

20题:用Python开发程序自动计算方案

公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡(最多用100文,并且最多买100只鸡),其中三中类型的鸡都要有,问公鸡母鸡小鸡需要买多少只刚好用100文钱?

#x 为公鸡个数,Y为母鸡,Z小鸡 //代表整除
for x in range(1, 100 // 5):
    for y in range(1, 100 // 3):
        for z in range(1, 100):
            if x + y + z == 100 and 5 * x+3 * y+z / 3==100:
                print(x,y,z)

在这里插入图片描述

总结

按照可变不可变划分:

可变:列表,字典
不可变:字符串,数字,元组

按访问顺序划分

顺序访问:字符串,列表,元组
映射访问:字典

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值