python基础 60道训练题目

本文提供了60道Python基础训练题目,涵盖字典操作、列表处理、正则表达式、SQL查询、异常处理等多个方面,旨在提升Python编程技能和问题解决能力。
摘要由CSDN通过智能技术生成

1、合并字典: a1.update(a2)

2、列表去重:a = [11,22,33,44,11,22] print(list(set(a)))

3、python2和python3的range(100) 区别

python 2返回列表,python 3返回迭代器,节约内存

4、列表[1,2,3,4,5],请用map()函数输出(1,4,9,16,25),并使用列表推导式提取出大于10的属,最终输出[16,25]

a = [1,2,3,4,5]
b=map(lambda x:x*x,a)
res=[i for i in b if i >10]
print(res)

5、 python随机生成整数,随机小数,0-1之间小数

import random
import numpy
import string

res1=random.randint(1,100)#随机整数
print(res1)

res2=numpy.random.randn(8)#8个随机小数
print(res2)

res3=random.random()#0-1之间小数
print(res3)

res4= random.sample(range(1,100),9) #随机生成9个 1-100之间的不重复整数
print(res4)

res5=numpy.random.choice(range(1000),9,replace=False) #随机生成9个 1-1000之间的不重复整数,当需要生成的数很多时,效率比random.sample高很多
print(res5)

for i in range(10): #随机生成10个,长度为8的不重复字符串
	str_list=random.sample(string.digits + string.ascii_letters,8)
    random_str="".join(str_list)
    print(random_str)

6、< div class=‘nam’>国家< /div> 用正则匹配出标签里面的内容(“国家”),其中class的类型是不确定的

import re
res=re.findall(r'<div class=".*">(.*?)</div>',str)
print(res)#返回的是列表 ['国家']

re.match('',str) #只匹配字符串开头,.span()打印匹配到的索引,group(1)打印匹配到的值
re.search('',str) #匹配整个字符串,其它同match

7、数据表student有id,name,score,city字段,其中name中的名字可有重复,需要消除重复行,sql语句;

select distinct name from student

8、s = “ajldjlajfdljfddd”, 去重并从小到大排序输出"adfjl

s = "ajldjlajfdljfddd"
s=list(set(s))
s.sort() #sort只对列表排序
print("".join(s)) #列表合并成为字符串
s = "-+abacsdadjhfjab="
print(s.strip()) #删除字符串左右两边的空字符
print(s.strip('-=+')) #删除字符串左右两边的-+=号

new_s=s[:2]+s[3:] #删除单个固定位置字符:切片+拼接
print(new_s)

res1=s.replace('ab',"") #删除任意位置字符,ab,可以用于删除字符串的字串
print(res1) #acsdadjhfj

res=s.translate(str.maketrans('','','ab')) #同时删除多种不同的字符a和b
print(res) #第三个参数为把参数直接替换为None

#第一个参数为要替换的字符组成的字符串,第二个参数为映射,即把字符串中的a换成1,b换成2.
str.maketrans('aeiou','12345') 

9、用lambda函数实现两个数相乘

multipy=lambda x,y:x*y
print(multipy(5,4))

10、字典按照键 从小到大排序

import collections
dict = {
   "name":"西瓜","age":18,"city":"shenzhen","tel":12345}
s=sorted(dict.items(),key=lambda x: x[0])#dicts.items()返回列表嵌套的 字典的键值对元组 x[0]是按照键排序,x[1]是按照值排序
new_dic=collections.OrderedDict()   #创建有序字典,保持排序后的顺序
for i in s:    
    new_dic[i[0]]=i[1]
print(new_dic)

#方法二 用zip+字典推导式
dict = {
   "name":"zs","sex":"man", "city":"bj"}
foo=zip(dict.keys(),dict.values()) #字典转列表嵌套元组 或dict.items()

b=sorted(foo,key=lambda x:x[0])
print(b)#[('city', 'bj'), ('name', 'zs'), ('sex', 'man')]

new_dict={
   i[0]:i[1] for i in b} #字典推导式构造新字典
print(new_dict) #{'city': 'bj', 'name': 'zs', 'sex': 'man'}

11、利用collections库的Counter方法统计字符串每个单词出现的次数

from collections import  Counter
a = "kjalfj;ldsjsfl;hdsllfdhg;lahfbl;hl;ahlf;h"
res=Counter(a) #以键值对方式 从大到小返回print(res)

12、字符串a = “not 404 found 张三 99 深圳”,每个词中间都是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"

import re
a = "not 404 found 张三 99 深圳"
list_a=a.split(" ") #split对字符串切片,若后面有num参数,则分割num+1个子字符串 a.split(" ",3)
s=re.findall(r"\d+|[a-zA-Z]+",a) #\d匹配数字[0-9],+匹配前面一个表达式1次或多次,|连接多个匹配方式#s返回的是 匹配到的 英文和数字的列表
res=[i for i in list_a if i not in s]  #过滤出汉字列表
print(" ".join(res)) 

13、filter方法求出列表所有奇数并构造新列表,a = [1,2,3,4,5,6,7,8,9,10]

# filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
# 接收两个参数,第一个为函数,第二个为序列
a = [1,2,3,4,5,6,7,8,9,10]
def f(a):    
    return a%2==1 #筛选出奇数
new_list=filter(f,a) #返回的是装饰器
print([i for i in new_list])

#方法二 列表生成式
new_list1=[i for i in a if i%2==1]
print(new_list1)

14、列表添加元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值