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)
答案上面为我自己写的答案,下面为标准答案