简答编程复习题参考
randrange是前闭后开,randint是前闭后闭
请写出一段Python代码实现删除一个list里面的重复元素
A=[1,2,3,3,4,4,5,5,5]
A=list(set(A))
print(A)
利用内置函数chr(),ord()以及random模块写一个简单随机4位验证码
importrandom
tmp=""
foriinrange(4):
n=random.randrange(0,2)
ifn==0:
tmp+=chr(random.randrange(65,91))
else:
tmp+=str(random.randrange(0,10))
print(tmp)
写代码 实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
error_num=0
while True:
username=input("请输入用户名:")
password=input("请输入密码:")
ifusername=='seven'andpassword=='123':
print("登录成功")
break
else:
print("登录失败")
error_num+=1
iferror_num==3:
print("已输错三次")
exit()
else:
continue
使用while循环实现输出2-3+4-5+6.....+100的和
a=2
sum=0
while(a<=100):
ifa%2==0:
sum+=a
else:
sum-=a
a+=1
print(sum)
12、写代码,有如下列表,按照要求实现每一个功能(所有练习题同样适用于元组)
li = ['alex','eric','rain']
a.计算列表长度并输出
b.列表中追加元素"seven",并输出添加后的列表
c.请在列表的第1个位置插入元素"Tony",并输出添加后的列表
d.请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
e.请删除列表中的元素"eric",并输出修改后的列表
f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
g.请删除列表中的第3个元素,并输出删除元素后的列表
h.请删除列表中的第2至4个元素,并输出删除元素后的列表
i.请将列表所有的元素反转,并输出反转后的列表
j.请使用for、len、range输出列表的索引
k.请使用enumrate输出列表元素和序号(序号从100开始)
l.请使用for循环输出列表的所有元素
li=['alex','eric','rain']
# a.计算列表长度并输出
print(len(li))
# b.列表中追加元素"seven",并输出添加后的列表
li.append("seven")
print(li)
# c.请在列表的第1个位置插入元素 "Tony",并输出添加后的列表
li.insert(0,"Tony")
print(li)
# d.请修改列表第2个位置的元素为 "Kelly",并输出修改后的列表
li[1]="Kelly"
print(li)
# e.请删除列表中的元素"eric",并输出修改后的列表
li.remove("eric")
print(li)
# f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
tmp=li.pop(1)
print(tmp)
print(li)
# g.请删除列表中的第3个元素,并输出删除元素后的列表
li.pop(2)
print(li)
# h.请删除列表中的第2至4个元素,并输出删除元素后的列表
li=li[0:1]+li[4:]
print(li)
# i.请将列表所有的元素反转,并输出反转后的列表
li.reverse()
print(li)
# j.请使用for、len、range 输出列表的索引
foriinrange(len(li)):
print(i)
# k.请使用enumrate输出列表元素和序号(序号从 100 开始)
forindex,valinenumerate(li,100):
print(index," ",val)
# l.请使用for循环输出列表的所有元素
foriinli:
print(i)
字典
dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
a.请循环输出所有的key
b.请循环输出所有的value
c.请循环输出所有的key和value
d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
e.请在修改字典中"k1"对应的值为"alex",输出修改后的字典
f.请在k3对应的值中追加一个元素44,输出修改后的字典
g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
# a. 请循环输出所有的 key
foriindic:
print(i)
# b. 请循环输出所有的 value
foriindic:
print(dic[i])
# c. 请循环输出所有的 key 和 value
foriindic:
print("key:",i,"value:",dic[i])
# d. 请在字典中添加一个键值对, "k4":"v4",输出添加后的字典
dic.setdefault("k4","v4")
print(dic)
# e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
dic["k1"]="alex"
print(dic)
# f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
dic["k3"].append(44)
print(dic)
# g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
dic["k3"].insert(0,18)
print(dic)
转换
d.将列表li=["alex","seven"]转换成字典且字典的key按照10开始向后递增
li=["alex","seven"]
dict={}
fori,nameinenumerate(li,10):
dict[i]=name
print(dict)
字典如何删除键和合并两个字典
a={"k1":"v1","k2":"v2"}
b={"k3":"v3"}
a.pop("k1")
a.update(b)
print(a)
25、map()函数第一个参数是fun,第二个参数是一般是list,第三个参数可以写list,也可以不写,根据需求
a=[1,2,3,4,5]
deffn(x):
returnx**2
res=map(fn,a)
res=[iforiinresifi>10]
print(res)
<div class="nam">中国</div>,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的
importre
str='<div class="nam">中国</div>'
res=re.findall(r'<div class=".*">(.*?)</div>',str)
print(res)
24、字典根据键从小到大排序dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
list=sorted(dict.items(),key=lambdai:i[0],reverse=False)
print("按键排序后的列表:",list)
new_dict={}
foriinlist:
new_dict[i[0]]=i[1]
print("新字典:",new_dict)
26、字符串a = "not 404 found张三99深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三深圳"
importre
a="not 404 found 张三 99 深圳"
list=a.split(" ")
res=re.findall("\d+|[a-zA-Z]+",a)
# print(res)
foriinres:
ifiinlist:
list.remove(i)
print(list)
new_str=" ".join(list)
print(new_str)
列表推导式求列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a= [1,2,3,4,5,6,7,8,9,10]
res=[iforiinaif(i%2==1)]
print(res)
实现字符串反转输入str="string"输出'gnirts'
str=str(input())
tmp=list(str)
tmp.reverse()
re_str="".join(tmp)
print(re_str)
或者
str=str(input())
re_str=str[::-1]
print(re_str)
6、一行代码实现对列表a中的偶数位置的元素进行加3后求和
sums=sum(map(lambdax:x+3,list[1::2]))
7、List = [-2, 1, 3, -6],如何实现以绝对值大小从小到大将List中内容排序
List=[-2,1,3,-6]
List.sort(key=abs)
print(List)
8、合并两个list:
a=[1,2,3]
b=[4,5,6]
c=a+b
print(c)
9、什么是lambda函数?它有什么好处?另外python在函数编程方面提供了些什么函数和语法?
lambda是Python中的匿名函数。它语法简单,简化代码,不会产生命名冲突,污染命名空间。Python提供了map,reduce,filter等函数方法,提供了装饰器,闭包等语法
10、详细说说tuple、list、dict的用法,它们的特点
tuple元祖,固定长度不可变的顺序容器,访问效率高,是和存储一些常量数据,可以作为字典的键使用
list列表,是长度可变有序的数据存储容器,。可以通过下标索引取到相应的数据
dict字典,长度可变的hash字典容器。存储的方式为键值对,可以通过相应的键获取相应的值,key支持多种类型
list对象alist [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}], 请按alist中元素的age由大到小排序;
alist.sort(key=lambdax:x['age'],reverse=True)
题目3:设计一个函数,统计字符串中英文字母和数字各自出现的次数
defcount_letter_number(string):
letter_count=0
digit_count=0
forchinstring:
if'a'<=ch<='z'or'A'<=ch<='Z':
letter_count+=1
elif'0'<=ch<='9':
digit_count+=1
returnletter_count,digit_count
题目5:设计一个函数,计算字符串中所有数字序列的和
importre
defsum_num_seq(string):
mylist=re.findall('\d+',string)
my_sum=0
fornuminmylist:
my_sum+=int(num)
returnmy_sum
题目6:从一组单词库中,随机抽取一个单词,打乱顺序后输出,提示用户猜测正确单词,允许猜测最大次数为5次。单词库如下:
Wordlist=(‘pumpkin’,‘potato’,‘grape’,‘sandwich’,‘cupcake’,‘juice’,‘study’)
---------------------
importrandom
Wordlist=('pumpkin','potato','grape','sandwich','cupcake','juice','study')
word=Wordlist[random.randrange(0,len(Wordlist))]
cor_word=word
re_word=""
foriinrange(len(word)):
tmp=random.randrange(0,len(word))
re_word+=word[tmp]
word=word[0:tmp]+word[tmp+1:]
sum_number=0
print(re_word)
while(True):
cai=input()
ifcai==cor_word:
print("恭喜你猜对了!")
break
else:
print("很可惜,你猜错了!")
sum_number+=1
ifsum_number>=5:
print("你已经猜5次了!")
break
题目7:购物车功能要求:
要求用户输入总资产,例如:2000
显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。购物车列表如下:
carts=[
{"name":"电脑","price":1999,”num”:1},
{"name":"鼠标","price":10, ”num”:2},
{"name":"游艇","price":20, ”num”:1}
]。
---------------------
carts=[
{"name":"电脑","price":1999,"num":1},
{"name":"鼠标","price":10,"num":2},
{"name":"游艇","price":20,"num":1}
]
sum=0
foriincarts:
sum+=int(i["price"])*int(i["num"])
money=int(input())
ifmoney>=sum:
print("购买成功!")
else:
print("余额不足")
题目8:编程实现抽奖小程序:从学号1-60号的同学中随机抽取一位同学,再从1到4等奖中随机抽取一个奖项,奖品信息保存在元组中(1等奖笔记本,2等奖苹果手机,3等奖kindle,4等奖迷你音响)。最后输出:学号和中奖情况,例如:中奖号码:20号,奖品:2等奖 苹果手机一部。
---------------------
importrandom
reward=("1等奖 笔记本一部","2等奖 苹果手机一部","3等奖 kindle一部","4等奖 迷你音响一个")
sno=random.randint(1,60)
reward_no=random.randint(0,3)
print("中奖号码:",sno,"号,奖品:",reward[reward_no])
Python被称为自带电池,请列举出至少五种电池(python模块)以及他们的作用
Numpy:高效数据处理
Pandas:数据探索和数据分析
Pygame:游戏开发
Matplotlib:作图,可视化分析
Request:网络爬虫,获取网页
Scipy:数值分析,矩阵计算
Json:json解码,转换
Time:时间访问、转换
Random:生成伪随机数
Os:操作系统接口
Sys:系统相关函数和参数
简述数据挖掘的过程主要由哪些。
1、确定目标
2、数据取样:随机取样、等距取样、分层取样、从起始顺序取样、分类抽样
3、数据探索:异常值分析、缺失值分析、相关性分析和周期分析
4、数据预处理:数据筛选、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、物选择规约
5、数据建模:model(分类、聚类、关联规则、时序模式或者智能推荐)
6、模型评价:找出最好的模型
Python中常用的统计作图函数有哪些,分别什么作用。
plot() 绘制线性二维图,折线图
pie() 绘制饼图
hist() 绘制直方图
boxplot() 绘制箱形图 Pandas
数据探索的内容。
数据质量分析:缺失值,异常值分析,
数据特征分析:分布分析,对比分析,周期分析,贡献度分析,统计量分析,相关性分析
数据预处理包含哪些内容。
1-数据清洗,
1)缺失值处理,三种方法:删除记录、数据插补、不处理
2)异常值处理,四种方法:删除含有异常值的记录、视为缺失值、平均值修正、不处理。
2-数据集成
(1)实体识别:同名异义、异名同义、单位不统一
(2)冗余属性识别,可利用相关性分析对属性进行检测
3-数据变换:
1)简单函数变换:平方、开放、取对数、差分运算
2)规范化:最小-最大规范化、零-均值规范化、小数定标规范化
3)连续属性离散化:等宽法、等频发、基于聚类分析方法
4) 属性构造
5)小波变换:信号分析手段,小波分析的理论和方法在信号处理、图像处理、语音处理、模式识别、量子物理等领域得到越来越广泛的应用
4-数据规约
属性规约②数值规约Mvc设计模式广泛应用于web开发,简述mvc的工作原理
mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。
1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型 与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性
2、视图(view)用户与之交互的界面、在web中视图一般由jsp,html组成
3、控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的做用