python课程编程题汇总(下)

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()

有些题还没做完
未完待续。。。
以上只是我个人解法和理解,如果有不同的想法欢迎大家一起讨论~
都看到这里了,给我点个赞呗~

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值