python编程题汇总
众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~
用这个贴子来记录也和大家分享一下我们课上的编程讨论题
上篇在这→python课程编程题汇总(上)
中篇在这→python课程编程题汇总(中)
1、学生成绩统计
产生一个列表,其中有40个元素,每个元素是50到100的一个随机数,如果这个列表中的数据代表着某个班级40人的分数,请计算成绩低于平均分的学生人数,对前面的列表元素做降序排序。
import random as r
li=[]
sum=0
count=0
for i in range(40):
x=r.randint(50,100)
li.append(x)
sum=sum+x
aver=sum/40
for n in li:
if n<aver:
count+=1
li.sort()
print("该班成绩如下:{}".format(li))
print("平均分为{}".format(aver))
print("成绩低于平均分的学生人数有{}个".format(count))
2、python 内置函数的功能
说出以下python 内置函数的功能
len(x)
str(x)
chr(x)
ord(x)
hen(x)
oct(x)
len(x):返回字符串x的长度
str(x):获取任意类型x对应的字符串形式
chr(x):x为Unicode编码,返回其对应的字符
ord(x):x为字符,返回其对应的Unicode编码
hen(x):整数x的十六进制小写形式字符串
oct(x):整数x的八进制小写形式字符串
3、把两个文件中的信息合并
有2个磁盘文件text1.txt和text2.txt,各存放一行英文字母,
要求把这两个文件中的信息合并(按字母顺序排列),然后输出到一个新文件text3.txt
text1=open("text1.txt").read()
text2=open("text2.txt").read()
str=text1.lower()+text2.lower()
S=",".join(str)
li=S.split(",")
li.sort()
text3="".join(li)
f=open("text3.txt","w")
f.write(text3)
f.close()
#文件位置很重要,最好放在同一个目录下
4、自动化获取自己电脑系统资源
编写脚本,自动化实现获取自己电脑系统资源(cpu/内存/磁盘使用情况)
这题我是学习参考了xianjie0318的文章
python自动化运维学习------使用模块psutil获取系统cpu、内存、磁盘、网络、进程等信息
来做的,他的是python2的版本,我就改了一点点格式
大佬果然就是大佬,就是比较厉害
import psutil
print("--------------cpu---------------")
cpuinfo=psutil.cpu_times()
print('cpu 完整的基本信息:', cpuinfo)
print('cpu单项数据信息,用户user的cpu时间比',cpuinfo.user)
print("获取cpu的逻辑个数:", psutil.cpu_count())
print("获取cpu的物理个数:", psutil.cpu_count(logical=False))
print('--------------内存----------------')
mem=psutil.virtual_memory()
print('获取内存完整信息:', mem)
print('获取内存总数:', mem.total/(1024*1024*1024),'G')
print('获取内存空闲总数:', mem.free/(1024*1024*1024),'G')
print('获取swap分区的内存信息:', psutil.swap_memory())
print('-----------磁盘信息----------------')
print('获取磁盘完整信息:', psutil.disk_partitions())
print('获取分区的使用情况:', psutil.disk_usage('/'))
print('获取硬盘总的IO个数、读写信息:', psutil.disk_io_counters())
print('获取单个分区IO个数:', psutil.disk_io_counters(perdisk=True))
5、自动获取你所打开的程序所占用的资源(cpu和内存情况)
编写脚本,自动获取你所打开的程序所占用的资源(cpu和内存情况)
提示:在任务管理器中能找到你所打开的程序
6、随机密码生成
编写程序,由在26个字母大小写和9个数字组成的列表随机生成10个8位密码。
提示:导入String 模块,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9
import random
import string
chs=list(string.digits+string.ascii_letters)
def func():
s=""
for i in range(8):
ch=random.choice(chs)
s+=ch
return s
def main():
for i in range(10):
print("第{}次生成的密码{}".format(i+1,func()))
main()
7、随机生成密码优化版(列表推导式)
根据列表推导式做出的一些优化,有关于列表推导式在这里→利用列表推导式更简洁的输出数据
import random
import string
chs=string.digits+string.ascii_letters
def func(n):
s=[random.choice(chs) for i in range(n)]
return "".join(s)#将列表的字符拼接起来
def main():
for i in range(10):
print("第{}次生成的密码{}".format(i+1,func(8)))
main()
8、简易模拟用户登陆系统
要求实现如下功能:
1、系统数据库里面有用户名和密码
2、用户只有三次机会登录(判断用户登陆是否成功)
user=["redhat","abc"]
password=["123","456"]
for i in range(3):
u=input("请输入用户名:")
if u==user[0] or u==user[1]:
p=input("请输入密码:")
if (u==user[0] and p==password[0]) or (u==user[1] and p==password[1]):
print("登陆成功")
break
else:
print("密码错误")
else:
print("用户名错误")
else:
print("3次机会已用完,请稍后再试")
9、简易模拟用户登陆系统升级版
要求实现以下功能:
1、支持新用户注册,新用户名和密码注册到字典中
2、支持老用户登录,用户名和密码正确提示登陆成功
3、主程序通过循环询问进行何种操作,根据用户的选择,执行注册或是登陆操作
userdb={}
def register():
username=input("请输入你的用户名:")
if username in userdb:
print("用户名{}已存在".format(username))
else:
password=input("请输入你的密码:")
userdb[username]=password
print("注册成功")
def login():
username=input("请输入你的用户名:")
password = input("请输入你的密码:")
if userdb.get(username)!=password:
print("密码错误,登陆失败")
else:
print("登陆成功")
def show_menu():
p="""
(0)注册
(1)登陆
(2)退出
请输入你的选择(0/1/2):
"""
while 1:
choice=input(p)#.strip()[0]
if choice not in "012":
print("请重新选择")
continue
elif choice=="2":
break
elif choice=="1":
login()
else:
register()
def main():
show_menu()
main()
有些题还没做完
未完待续。。。
以上只是我个人解法和理解,如果有不同的想法欢迎大家一起讨论~
都看到这里了,给我点个赞呗~