python基础教学习题_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('{}*{}={}\t'.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)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值