python数据类型练习题

1.python中有哪些数据类型?
python的数据类型:字符串(str),列表(list),字典(dict),元组(tuple),集合(set)
2.字符串用什么定义?告诉我你所知的字符串中有哪些函数一个函数一个中文解释?
字符串定义用:''或者“”

str1='baoan31ban'
print(str1.capitalize())    #首字母大写
print(str1.title())         #除首字母外的其他字符后的首字母也大写
print(str1.istitle())       #判断序列中非字母隔开的字符是不是首字母大写,返回布尔值
print(str1.count('a'))      #统计序列中指定字符出现的次数
print('?'.join(str1))       #在序列中的元素用问号拼接在一起 print(str1.split('a'))      #以指定的分隔符去分割序列元素,结果返回列表的数据类型
str2='abababbbhahhbbab'
print(str2.strip('ab'))       #循环匹配删除以指定的字符开头或者结尾的元素,删除含有a和b
print(str2.lstrip('ab'))      #循环匹配删除以指定的字符开头的元素,删除含有a和b
print(str2.rstrip('ab'))      #循环匹配删除以指定的字符结尾的元素,删除含有a和b
print(str1.startswith('b'))   #判断序列是否以指定的字符开头,返回布尔值
print(str1.endswith('n'))     #判断序列是否以指定的字符结尾,返回布尔值
print(str1.find('a'))         #从左往右查询第一个匹配到的指定字符对应的正向索引的值
print(str1.rfind('a'))        #从右往左查询第一个匹配到的指定字符对应的正向索引的值
print(str1.replace('baoan','longgang'))     #替换replace(‘旧值’,‘新值’)
print(str1.replace('b','k',1))              #替换replace(‘旧值’,‘新值’,替换次数)
str1='baoan31ban'
str2='BAOAN31BAN'
print(str1.upper())         #将所有的元素变大写
print(str2.lower())         #将所有的元素变小写
print(str2.isupper())       #判断序列中元素是否都是大写,输出布尔值
print(str1.islower())       #判断序列中元素是否都是小写,输出布尔值
print(str1.isalnum())       #判断序列中的元素是否都是数字或者字母或者数字与字母的组合,返回布尔值
print(str1.isalpha())       #判断序列中的元素是否是纯字母,返回布尔值
print(str1.isdigit())       #判断序列中的元素是否是纯数字,返回布尔值

3.列表用什么定义?告诉我你所知的列表中有哪些函数一个函数一个中文解释?
定义:用中括号表示[]
1.append    末尾添加
2.extend    列表拼接列表
3.insert(索引的值,‘内容’)    插入
4.remove    移除,删除
5.del       删除
6.pop       删除,可以返回被删除的元素
7.index     查看匹配到的第一个元素的索引
8.sort      实现列表升序排序(永久排序)从小到大排序(排序规则,数据类型不同不能一起排序)
9.sorted    排序从小到大(临时排序)
4.元组用什么定义?元组和列表有哪些区别?
定义:用小括号()表示 tuple
相同点:
1.都支持切片和索引的操作
2.相互之间可以转化
3.都是python中的一种数据类型,它的元素都可以是任何数据类型
不同点:
1.列表是可变序列(元素可以随意增删改),元组不可变序列(不可以随意增删改)
2.元组可以写保护功能,数据存储方面比较安全
3.如果元组的元素需要该表,需要将元组进行转化为列表,改变后再转化为元组
5.字典用什么定义?告诉我你所知的字典中有哪些函数一个函数一个中文解释?
定义:用大括号+键值对  直接定义{}
1.keys()函数,取出字典所有的键
2.values()函数 ,取出字典所有的值
3.setdefault()函数,往字典添加元素
4.del 删除,通过键删除
5.get()函数 通过传入键,得到对应的值====以键取值
6.items()函数  配合for循环,用两个变量分别遍历键和值
7.pop()函数==删除指定键,会返回对应值
8.popitem()函数   删除字典末尾的键值对,并以元组的数据类型返回
9.clear()函数  清空字典中的元素,剩下一个空字典
10.fromkeys()函数 ,生成一个新字典
11.__contains__()函数字典中有没有指定键,返回布尔值
12.update()函数  更新,用一个字段更新另一个字典
6.如何对字符串进行反向输出?

print(str1[::-1])           #打印结果为:gfedcba  切片反转,就是切完之后的元素位置进行颠倒

7.如何对列表进行反转输出?
list1=[1,5,3,7,8,4,9,19]

print(sorted(list1,reverse=True))    #实现降序排序   输出结果[19, 9, 8, 7, 5, 4, 3, 1]

8.字符串aabbcdbaaabcb,去除a或b开头的字符?
str1='aabbcdbaaabcb'

print(str1.lstrip('ab'))

9.用你熟悉的语言把字符串user_name输出为:userName
i='user_name'

print(i[:4]+i[5:].capitalize())
答案
str1='user_name'
print(str1[:4]+str1[5:].capitalize())
print(str1.replace('_n','N'))

10.实现把字符串str = "duoceshi"中任意字母变为大写(通过输入语句来实现)
str1='duoceshi'

i=input('输入你要变大的字母')
if i=='d':
    print(str1.capitalize())
elif i=='u':
    print(str1[:1]+str1[1:].capitalize())
elif i=='o':
    print(str1[:2]+str1[2:].capitalize())
elif i=='c':
    print(str1[:3] + str1[3:].capitalize())
elif i=='e':
    print(str1[:4] + str1[4:].capitalize())
elif i == 's':
    print(str1[:5] + str1[5:].capitalize())
elif i == 'h':
    print(str1[:6] + str1[6:].capitalize())
elif i == 'i':
    print(str1[:7] + str1[7:].capitalize())
else:
    print('里面没有这个字母。你看清楚了')

答案
str1 = "duoceshi"
a=input('请输入在“duoceshi”中你需要输入的字母:')
if  a in str1:
    for i in a:
      j=i.upper()
      str1=str1.replace(i,j)
    print(str1)
else:
    print('输入错误!')

11.把字符串user_controller转换为驼峰命名UserController
str2='user_controller'

print(str2[:4].capitalize()+str2[5:].capitalize())

答案
str1='user_controller'
print(str1[:4].capitalize()+str1[5:].capitalize())

12.给一组无规律的数据从大到小或从小到大进行排序如:list = [2, 6, 9, 10, 18, 15, 1]

list1=[2,6,9,10,18,15,1]
list1.sort()
print(list1)        #从小到大
print(list1[::-1])  #从大到小
print(sorted(list1))
print(sorted(list1,reverse=True))

答案
list1 = [2, 6, 9, 10, 18, 15, 1]
print(sorted(list1))
list1.sort()
print(list1)

13.请写一段Python代码实现删除一个list = [1, 3, 6, 9, 1, 8]# 里面的重复元素不能用set

list1=[1,3,6,9,1,8]
set1=set(list1)
print(set1)


list1=[1,3,6,9,1,8]
list1.remove(1)
print(list1)

list1=[1,3,6,9,1,8,3,3,3,3,3,3,3,3,3,22,2,2,2,1]
list2=[]
for i in list1:                 #用i变量去遍历整个列表元素
    if i not  in list2:
        list2.append(i)
print(list2)

答案
list1 = [1,3,6,9,1,8,3,3,3,3,3,3,3,3,2,2,2,22,1]
list2=[]
for i in list1:                   #用i变量去遍历整个列表元素
    if i not in list2:            #判断list1中元素有没有在list2中,如果没有在list2中写入list2
        list2.append(i)
print(list2)

14.将字符串类似:"k:1|k3:2|k2:9" 处理成key:value或json格式,比如{"k": "1", "k3": "2"}

str1='k:1|k3:2|k2:9'
str1=str1.split('|')
dict1={}
#print(str1)
for i in str1:
    str2=i.split(':')
    #print(str2)
    dict1.setdefault(str2[0],str2[1])
print(dict1)

答案
str1='k:1|k3:2|k2:9'
str1=str1.split('|')
dict1={}
# print(str1)                #['k:1', 'k3:2', 'k2:9']
for i in str1:
    str2=i.split(':')
    # print(str2)
    dict1.setdefault(str2[0],str2[1])
print(dict1)                   #{'k': '1', 'k3': '2', 'k2': '9'}

15.输出1到100的奇数、偶数、5的倍数、奇数和、偶数和、总和

for i in range(1,101):
    print(i)
i=1
j=2
x=5
y=1
a=1
b=2
c=2
w=1
z=1
while i<100:
    print('奇数:%s' %i)
    i=i+2
while j<=100:
    print('偶数:%s' %j)
    j+=2
while x<=100:
    print('5的倍数:%s' %x)
    x+=5
while y<99:
    y=y+2
    a=a+y
else:
    print('奇数和:%s' %a)
while b<100:
    b=b+2
    c=c+b
else:
    print('偶数和:%s' %c)
while w<100:
    w+=1
    z=z+w
else:
    print('总和:%s' %z)


list1 = []
list2 = []
list3 = []
list4 = []
list5 = []
for i in range(1, 101):
    if i % 2 == 0:
        list1.append(i)
    else:
        list2.append(i)
    if i % 5 == 0:
        list3.append(i)

print('1到100的偶数有:', list1, '\n偶数和为:', sum(list1))
print('1到100的奇数有:', list2, '\n奇数和为:', sum(list2))
print('5的倍数有:', list3, '\n总和:', sum(list1) + sum(list2))

答案
sum1=0
sum2=0
for i in range(1,101):
    if  i%2==0:
        # sum1=sum1+i
        sum1+=i
    else:
        sum2+=i
print(sum1,sum2,sum1+sum2)

16.有如下url地址, 要求实现截取出"?"号后面的参数,
并将参数以"key value"的键值形式保存起来, 并最终通过#get(key)的方式取出对应的value值。
url地址如下:
http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0

str1='http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0'
dict1={}
str2=str1.split('?')[1]
# print(str2)
list1=str2.split('&')
 print(list1)
for i in list1:
    list2=i.split('=')
    print(list2)
    dict1.setdefault(list2[0],list2[1])
#print(dict1)


答案
str1='http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0'
dict1={}
str2=str1.split('?')[1]
# print(str2)
list1=str2.split('&')
# print(list1)
for i in list1:
    list2=i.split('=')
    # print(list2)
    dict1.setdefault(list2[0],list2[1])
print(dict1)

答案上面为我自己写的答案,下面为标准答案

posted @ 2023-03-27 21:13  jormen  阅读(408)  评论(0编辑  收藏  举报