菜鸟学Python训练习题
1.比如自然数10以下能被3或者5整除的有,3,5,6和9,那么这些数字的和为23.
求能被3或者5整除的1000以内数字的和
1 multiple_of_threes=[] 2 for multiple_of_three in range(0,1001,3): 3 multiple_of_threes.append(multiple_of_three) 4 sum_of_threes=sum(multiple_of_threes) 5 print(multiple_of_threes) 6 print(sum_of_threes) 7 multiple_of_fives=[] 8 for multiple_of_five in range(0,1001,5): 9 multiple_of_fives.append(multiple_of_five) 10 sum_of_fives=sum(multiple_of_fives) 11 print(multiple_of_fives) 12 print(sum_of_fives) 13 print(sum_of_threes+sum_of_fives) 14 multiple_of_threes.extend(multiple_of_fives) #3的倍数和5的倍数合并成一个列表 15 print(sum(multiple_of_threes))
2.在一个数组指定数组里面移除指定的数字,并返回新的数组并从大到小排序
比如:
nums=[1,6,6,3,6,2,10,2,100],remove_num=6
要求返回时nums=[1, 2, 3, 10, 100]
1 nums=[11,22,13,6,58,36] 2 nums.remove(nums[3]) 3 nums.sort(reverse=true) 4 print(nums)
3.从排序好的任意数组列表里面删除重复元素(你不知道列表里面有多少个重逢的元素)
比如:
nums=[1,3,3,5,5,8,10,10,100,100],处理完之后是:[1, 3, 5, 8, 10, 100]
nums=[1,3,3,5,5,8,10,10,100,100]
1 #删除列表中的重复值 2 num=[11,22,6,13,6,11,58,36] 3 num2=[] 4 for i in num: 5 if i not in num2: 6 num2.append(i) 7 print(num2) 8 #转换成集合,再转换成列表输出 9 print(list(set(num)))
4.从排好序的数组里面,删除重复的元素.重复的数字最多只能出现2次
nums=[1,1,1,2,2,3]
要求返回nums=[1,1,2,2,3]
1 #删除列表中重复3次及以上的数值 2 list=[1,1,1,2,2,2,3,3,4,4] 3 for i in list: 4 if list.count(i)>2: 5 list.remove(i) 6 print(list)
1 #将一个列表中重复3次以下的数值插入到另一个列表中 2 list=[1,1,1,2,2,2,3,3,4,4] 3 list2=[] 4 for i in list: 5 if list.count(i)<3: 6 list2.append(i) 7 print(list2)
5.给定2个字符串s1,s2,判定s2能否给s1做循环移位得到字符串的包含。比如:
s1="aabbcd",s2="cdaa".
6.给定一个字符串,寻找没有字符串重复的最长子字符串.
比如:"abcabcbb" 找到的是"abc",长度为3,比如"bbbbb"找到的是"b",长度为1
7.有一串长的字符串 names="li xia ,zhao ming ,lao wang *,da xiong >,li mei mei," \
"chang jiang,li qiang,zhang wu ji,zhang san feng," \
"du gu qiu bai,qiao feng"
要求:
1).过滤出所有的名字,去掉每个名字的左右的空格和乱码,每个名字的首字母大小,比如'lao wang *',处理成'lao wang'
2).统计出所有名字里面名字最长的
3).统计出同姓的人名单
names="li xia ,zhao ming ,lao wang *,da xiong >,li mei mei," "chang jiang,li qiang,zhang wu ji,zhang san feng," "du gu qiu bai,qiao feng"
8.数字1到5可以被写成:one,two,three,four,five,因此这些字母的总长度为:
3+3+5+4+4=19,现在求序列1到1000(包括1000),这些数字写成单词,总长度为多少
-
比如 342(three hundred and forty-two)为23字母,空格和-不计算.
-
比如 115(one hundred and fifteen)为20个字母
-
比如 1000(one hundred)为11个字母