西南科技⼤学Python实验测试⼀、⼆测试⼀
第⼀题
通过键盘输⼊系列整数值,输⼊0表⽰结束,程序筛选并输出其中的素数。
要求:程序中应该包含有对输⼊⾮法数据(⼩数、⾮数值数据)的限制,当⽤户输⼊不合法时做提⽰。# -*- coding:utf-8 -*-
# Author : ZhangPeng
# Data : 2019/10/16 14:05
import math
def sushu(a):
flag =True
if a >2:
for i in range(2,int(math.sqrt(a))+2):
if a % i ==0:
flag =False
break
elif a ==2:
return flag
else:
flag =False
return flag
if __name__ =="__main__":
li =[]
while True:
a =input("请输⼊⼀个正整数,输⼊0则结束输⼊:")
if a.isnumeric():
if eval(a)==0:
break
if sushu(eval(a)):
li.append(eval(a))
continue
else:
print("输⼊⾮法,请重新输⼊!")
li=set(li)
li=list(li)
print("您输⼊的正整数中,属于素数的有:{}".format(li))
第⼆题
从键盘输⼊⼀串字符,统计输出出现次数最多的前3个字符及次数,并输出总共出现了多少种字符。
# -*- coding:utf-8 -*-
# Author : ZhangPeng
# Data : 2019/10/16 14:36
if __name__ =="__main__":
st =input("请输⼊⼀串字符,输⼊完毕按回车键:")
counts ={}
for i in st:
counts[i]= (i,0)+1
counts =list(counts.items())
counts.sort(key=lambda x: x[1], reverse=True)
print("出现次数最多的前三个字符如下:")
for i in range(3):
print("字符:{0:<10} 出现次数:{1:<5}".format(counts[i][0], counts[i][1]))
zl =0
for i in counts:python基础知识测试
zl = zl +1
print("⼀共输⼊了{}种字符!".format(zl))
⼀、题⽬1
编写程序完善下⾯3个函数,完成从⽂件中读取数据,⽤其中的数字组成互不相同的三位数(
个位、⼗位、百位数字可以重复),并将⽣成的三位数数⽬和所有⽣成的三位数⽤‘,’分隔后追加到⽂件末尾。
def getData(name):name是读取的⽂件名称,函数返回⼀个列表,包含解析出来的数字;
def genNumber(data):data是getData返回的数字列表,函数返回⼀个列表,包含⽣成的互不相同的三位数按照升序排列;
def saveData(name,data):name是写⼊的⽂件名称,data是genNumber产⽣的三位数列表,函数将data中的三位数数量和所有三位数⽤‘,’分隔后追加到‘name’指定⽂件末尾。
输出⽂件⽰例:
# -*- coding:utf-8 -*-
# Author : ZhangPeng
# Data : 2019/10/25 19:03
#获取数据,返回升序列表
def getData(name):
dat =[]
op =open(name,"r", encoding='utf-8')
txt = op.readline()
dat +=str(txt)[0:7].split("$")
txt = op.readline()
dat +=str(txt)[0:7].split("*")
狂热运输2火车不运货物dat =sorted(dat)
op.close()
return dat
#三位数字组合,返回列表保存的升序的数字组合
def genNumber(data):
dat =[]
data drivenfor i in range(0,7):
for j in range(0,7):
for k in range(0,7):
num =int(data[i]+ data[j]+ data[k])
dat.append(num)
return dat
#保存数据
def saveData(name, data):
count =0
strd =""
for i in data:
count +=1
if count ==1:
strd +=str(i)
else:
strd +=","+str(i)
进制转换器 小数op =open(name,"a+", encoding='utf-8')
tota ="total:"+str(count)+"\n"
op.write(tota)
op.write(strd +"\n")
op.close()
if __name__ =="__main__":
Data = getData("")
Number = genNumber(Data)
saveData("", Number)
请编写程序完成如下的功能,要求每个⼦功能模块都对应⼀个函数来实现。
程序读取源⽂件路径下的 ⽂件,若没有就创建⼀个。⽂件内容存储格式为“姓名:电话号码”,每⼈仅允许⼀个电话号码。程序提⽰⽤户如下操作信息。(提⽰:字典的存取可以通过json库的loads和dumps⽅法进⾏字符串转换)
‘’’
|-----欢迎进⼊通讯录-----|
|—1、查询联系⼈信息—|
|—2、插⼊新的联系⼈—|
|—3、删除联系⼈信息—|
|—4、退出通讯录程序—|
‘’’
接收⽤户的操作指令并进⾏对应操作,如果⽤户输⼊不合法,则提⽰“输⼊指令不合法。”
查询联系⼈:提⽰信息“请输⼊联系⼈姓名:”,并接收输⼊姓名,查询当前通讯录⾥⾯的联系⼈信息,若联系⼈存在,则输出联系⼈信息“姓名:”,若不存在,则提⽰信息“联系⼈不存在。”;
插⼊联系⼈:提⽰信息“请输⼊插⼊联系⼈姓名:”,并接收输⼊姓名,若联系⼈已经存在,则提⽰“联系⼈已经存在。”若不存在,则提⽰“联系⼈不存在。请输⼊电话:”,接收输⼊电话进⾏插⼊,并提⽰信息“联系⼈插⼊成功。”
删除联系⼈:提⽰信息“请输⼊删除联系⼈姓名:”,并接收输⼊姓名,若联系⼈不存在,则提⽰“联系⼈不存在。”,若联系⼈存在,则删除通讯录中的联系⼈信息,并提⽰“联系⼈删除成功。”
退出通讯录:提⽰信息“谢谢你的使⽤。”,并存储通讯录到中,并退出程序。
句柄数一直增加好吗# -*- coding:utf-8 -*-
# Author : ZhangPeng
# Data : 2019/10/25 20:15
# 电话号码格式(⼀⾏存储,末尾没有回车(\n)),数据格式如下:
# 张鹏:177********,罡哥:177********
# 读取数据,返回号码字典,setnumber["姓名"]=="号码"
def readData(fname="", op="a+"):
dat =[]
op =open(fname, op, encoding='utf-8')
op.seek(0)
txt = op.readline()
if not txt:
return{}
dat = txt.split(",")
setnumber ={}
for peo in dat:
peo =str(peo).split(":")
setnumber[peo[0]]= peo[1]
op.close()
return setnumber
# 保存数据,接接收数据为列表,列表⾥⾯的数据为对象:[("张鹏":"177********")]
def saveDate(data, fname="", op="w+"):
isfirst =True
strd =""
for peo in data:
if isfirst:
strd +=str(peo[0]+":"+ peo[1])
isfirst =False
else:
strd +=","+str(peo[0]+":"+ peo[1])
op =open(fname, op, encoding='utf-8')
op.write(strd)
op.close()
# 根据姓名查询号码
def selectNumber(pname):
setnumber = readData()
if pname in setnumber.keys():
print(pname +":"+ setnumber[pname])
else:
usb3 vision device驱动下载print("联系⼈不存在。")
# 插⼊号码
def inserNumber(name):
setnumber = readData()
if name in setnumber:
print("联系⼈已存在。")
else:
number =input("联系⼈不存在。请输⼊电话:")
setnumber[name]= number
saveDate(list(setnumber.items()))
# 删除号码
def delNumber(name):
setnumber = readData()
if name in setnumber:
del setnumber[name]
saveDate(list(setnumber.items()))
print("号码删除成功!")
else:
print("联系⼈不存在。")
def menu():
print("|---1、查询联系⼈信息---|")
print("|---2、插⼊新的联系⼈---|")
print("|---3、删除联系⼈信息---|")
print("|---4、退出通讯录程序---|")
def welcome():
print("|-----欢迎进⼊通讯录-----|")
def control():
while True:
menu()
num =input("请输⼊你想要的操作序号,如查询则输⼊1然后回车:") jug =["1","2","3","4"]
if num in jug:
if num =="1":
name =input("请输⼊联系⼈姓名:")
selectNumber(name)
elif num =="2":
name =input("请输⼊插⼊联系⼈姓名:")
inserNumber(name)
elif num =="3":
name =input("请输⼊删除联系⼈姓名:")
delNumber(name)
else:
exit(0)
else:
print("输⼊错误,请重新输⼊:")
if __name__ =="__main__":
welcome()
control()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论