python基础|数据类型练习题

'''
1,请用代码实现:利用下划线将列表中的每一个元素拼接成字符串,|l = ['alex', 'eric', 'rain']
'''
# l = ['alex', 'eric', 'rain']
# s ='_'.join(l) # join迭代送入
# print(s)

'''
2,查找下列表中的元素,移除每个元素的空格,并查找以A或a开头且以c结尾的所有元素
li = ['alex', ' aric', 'Alex', 'Tony', 'rain']
li = ['alex', ' aric', 'Alex', 'Tony', 'rain']
dic = {'K1':alex','K2':' aric', 'K3':'Alex', 'K4':Tony'}
'''
# li = ['alex', ' aric', 'Alex', 'Tony', 'rain']
# tu = ('alex', ' aric', 'Alex', 'Tony', 'rain')
# dic = {'K1': 'alex', 'K2': ' aric', 'K3': 'Alex', 'K4': 'Tony'}
# list2 = []
# list1 = []

# for i in li:
# a1 = i.strip() # 移除空格
# list2.append(a1)
# if a1.startswith('A') or a1.startswith('a'):
# if a1.endswith('c'):
# list1.append(a1)
# print(list2)
# print(list1)
# list2 = []
# list1 = []
# for i in tu:
# a1 = i.strip() # 移除空格
# list2.append(a1)
# if a1.startswith('A') or a1.startswith('a'):
# if a1.endswith('c'):
# list1.append(a1)
# print(list2)
# print(list1)
# list2 = []
# list1 = []
# for i in dic.values():
# a1 = i.strip()
# list2.append(a1)
# if a1.startswith('A') or a1.startswith('a'):
# if a1.endswith('c'):
# list1.append(a1)
# print(list2)
# print(list1)

'''
3,写代码,有如下表,按照要求实现每一个功能
li = ['alex', 'aric', 'rain']
'''
li = ['alex', 'aric', 'rain']
# 计算列表的长度
print(len(li))

# 列表中追加元素‘seven',并输出添加后的列表
li.append('seven')
print(li)

# 请在列表第一个元素插入'Tony'
li.insert(0,'Tony') # 根据索引插入元素
print(li)

# 请修改列表中第二个位置的元素为‘kelly',并输出修改后的列表
li.pop(1)
li.insert(1,'kelly')
print(li)

# 请删除列表中的’eric',并输出修改后的列表
a = li.index('aric') # 查找‘Eric’的位置
li.pop(a) # 按索引删除
print(li)

# 请删除列表中的第二个值,请输出删除的值和删除后的列表
a = li.pop(1) # 按索引删除,并用a接受删除值
print(a,li)

# 请删除列表中的第三个值,并输出删除后的列表
li.pop(2)
del li[2]
li.remove('rain')
print(li)

# 请删除列表中的第2个到第4个元素,并输出删除后的列表
li.extend([1, 3])
print(li)
del li[1:4:1]
print(li)

# 请将列表中的值反转,请输出反转后的列表
print(li[::-1])

# 请使用for,len,range输出列表的索引
for i in range(len(li)):
print(i)

# 请使用enumr ate输出列表的元素和序号
for i,j in enumerate(li):
print(i,j)

# 请使用for循环列表中所有元素
for i in li:
print(i)

'''
4 ,写代码,有如下列表,请按照功能要求实现每一个功能
li = ['hello', 'seven', ['mom', ['h','kelly'], 'all'], 123, 446]
'''
li = ['hello', 'seven', ['mom', ['h', 'kelly'], 'all'], 123, 446]
# 请根据索引输出'kelly'
print(li[2][1][1])

# 请使用索引找到'all'元素并将其修改为'ALL’,
print(li[2][2].upper())

'''
5, 写代码,有如下元组,请按照功能要求实现每一个功能
tu = ('alex', 'eric', 'rain')
'''
tu = ('alex', 'eric', 'rain')
# 计算元组长度并输出
print(len(tu))

# 获取元组的第二个元素,并输出
print(tu[1])

# 获取元组第1-2个元素,并输出
print(tu[1],tu[2])

# 请使用for循环输出元组的元素
for i in tu:
print(i)

# 请使用for , len, range输出元组索引
for i in range(len(tu)):
print(i)

# 请使用enumerate输出元组和序号
for i,j in enumerate(tu):
print(i,j)



'''
6 有如下变量,请按要求实现功能
tu = ('alex',[11, 22, {'k1': 'v1','k2':['age', 'name'], 'k3':(11, 22, 33)}, 44])
'''
tu = ('alex',[11, 22, {'k1': 'v1','k2':['age', 'name'], 'k3':(11, 22, 33)}, 44])
# 讲述元组的特性
# 可以存多个值,不可改变

# 请问tu变量中的第一个元素“alex"是否可以被修改
# 不可以

# 请问tu变量中的k2对应的值是什么类型?是否可以被修改?如果可,请在其中添加一个元素‘Seven'
tu[1][2]['k2'].insert(0, 'Seven')
print(tu)

# 请问tu变量中的k3对应的值是什么类型?是否可以被修改?如果可,请在其中添加一个元素‘Seven'
#是元组,不可修改

'''
7, 字典
dic = {'k1': 'v1', 'k1': 'v2', 'k3':[11, 22, 33]}
'''
dic = {'k1': 'v1', 'k2': 'v2', 'k3':[11, 22, 33]}
# 请循环输出所有的key
for i in dic:
print(i)

# 请循环输出所有value
for i in dic.values():
print(i)

# 请循环输出所有的key和value
for i in dic:
print(i,dic[i])

# 请在字典添加一个键值对
dic['k4'] = 'v4'
print(dic)

res = dic.setdefault('k4','v4')
print(res)
print(dic)

# 请修改k1对应的值为‘alex',输出修改后的字典
dic['k1'] = 'alex'
print(dic)

# 请在k3对应元素追加一个元素44,输出修改后的字典
dic['k3'].append(44)
dic['k3'].insert(0,44)
dic['k3'].extend([44])
print(dic)

# 请在k3对应的值的第一个位置插入一个元素18,请输出修改后的字典
dic['k3'].insert(0, 18)
print(dic)

'''
8 转换
'''
s = 'alex'
# 1将字符串转换成列表
lis = []
for i in s:
lis.append(i)
print(lis)

# 将字符串a = 'alex'转换成元组
lis = []
for i in s:
lis.append(i)
print(tuple(lis))

# 将列表li = ['alex', 'seven']转换成元组
li = ['alex', 'seven']
print(tuple(li))

# 将元组tu = ('alex', 'seven')转换成列表
tu = ('alex', 'seven')
lis = []
for i in tu:
lis.append(i)
print(lis)

# 将列表li = ['alex', 'seven'],转换成字典,且字典的key以10开始往后递增
li = ['alex', 'seven']
a = {}.fromkeys(li, 10)
print(a)

'''
9 元素分类
有如下值集合[11, 22, 33, 44, 55, 66, 77, 88, 99, 90],将所有大于66的只保存在字典k1中,将小于66的值保存至第二个k2的值中
'''
lis = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
dic = {'k1': [],'k2':[]}
for i in lis:
if i > 66:
dic['k1'].append(i)
else:
dic['k2'].append(i)
print(dic)

'''
10 输出商品列表,让用户输入序列号,显示用户选中的商品
商品 li = ['手机’, ‘电脑’, ‘鼠标垫’, ‘游艇’]
1 ,允许用户添加商品
2 ,输入用户显示内容
'''
li = ['手机', '电脑', '鼠标垫', '游艇']
goods = []

sigen = True
while sigen:
print('0:手机', '1:电脑', '2:鼠标垫', '3:游艇')
goods_num = int(input("请输入商品序列号:").strip())
goods.append(li[goods_num])
print(goods)
com = input('是否继续购物(Y/N):').strip()
if com == 'N':
sigen = False
print('购物结束!欢迎再来')

'''
11, 用户交互显示类似省市N级联动的选择
1, 允许用户增加内容
2, 允许用户查看某一级别内容
'''
dic = {'河南省':{'郑州市':['金水区'],}, '上海市':{'上海市':['徐汇区']}}
sheng = input('请输入所在省份名:').strip()
if sheng in dic:
shi = input('请输入所在市级名:').strip()
if shi in dic[sheng]:
qu = input('请输入所在区:').strip()
if qu in dic[sheng][shi]:
print('省/直辖市/自治区:{}, 市:{}, 县/区;{}'.format(sheng, shi, qu))
else:
dic[sheng][shi].append(qu)
print('省/直辖市/自治区:{}, 市:{}, 县/区;{}'.format(sheng, shi, qu))
else:
dic[sheng][shi] =[]
qu = input('请输入所在区:').strip()
# print(dic[sheng][shi])
dic[sheng][shi].append(qu)
print('省/直辖市/自治区:{}, 市:{}, 县/区;{}'.format(sheng, shi, qu))
else:
dic[sheng] = {}
shi = input('请输入所在市级名:').strip()
dic[sheng][shi] = []
qu = input('请输入所在区:').strip()
dic[sheng][shi].append(qu)
print('省/直辖市/自治区:{}, 市:{}, 县/区;{}'.format(sheng, shi, qu))

'''
12列举布尔值是False的所有值
'''
# 0 ,'',[],(),{},None

'''
13 有两个列表
l1 = [11, 22, 33]
l2 = [22, 33, 44]
'''
l1 = [11, 22, 33]
l2 = [22, 33, 44]
s1 = set(l1)
s2 = set(l2)

# # 获取l1中有,l2中没有的值
# for i in l1:
# if i not in l2:
# print(i)
# print(s1 - s2)

# 获取l1和l2中内容都没有的元素
print(s1 ^ s2)

'''
14,利用for循环和range输出
'''
for循环从大到小输出1-100
for i in range(1, 101):
print(i,end=', ')

for循环从大到小输出100-1
lis = [i for i in range(1, 101)]
# lis.reverse()
# for j in lis:
# print(j, end=', ')

# while循环从大到小输出1-100
i = 1
while i <= 100:
print(i)
i += 1

# while循环从大到小输出100-1
i = 100
while i > 0:
print(i)
i -= 1

'''
15,利用for循环和range输出9*9乘法表
'''
for i in range(1,10):
for j in range(1,i+1):
print('{}*{}={} '.format(j, i, i*j), end ='')
print()

'''
16, 求100以内的素数
'''
# 素数大于等于2的数,且除了自身和1,不能被其他数整除
a = 0
for i in range(2,101): # 从2开始到100内的数遍历
for j in range(2, i): # 遍历这个数2到i-1的数。
if i % j == 0: # 判断这个数能被区间(2 i-1)的数整除不?
break # 可以被整除,跳出本层for循环
else:
print(i,end=', ')

'''
17 用冒泡法将[1, 3, 2, 7, 6, 13, 41, 24, 33, 85, 56]从大到小排列
'''
l1 = [1, 3, 2, 7, 6, 13, 41, 24, 33, 85, 56]
for i in range(len(l1)):
for j in range(i, len(l1)):
if l1[i] < l1[j]:
l1[i], l1[j] = l1[j], l1[i]
print(l1)
原文地址:https://www.cnblogs.com/huaiXin/p/11173918.html