超算团队纳新第一次考核

1、输入自己的个人信息(学号,姓名,专业,性别等)并输出控制台。

#PersonalInformationV1.py
PI=input("请输入个人信息(按学号,姓名,专业,性别依次输入并以一个空格隔开):")
ls=PI.split()
print("你的学号是{},你的姓名是{},你的专业是{},你的性别是{}".format(ls[0],ls[1],ls[2],ls[3]))

2、设计一个程序,实现判断是否是闰年。

#LeapYear.py
import os
year=input("请输入当前年份:")
number=int(year)
if number%4==0 and number%100!=0 or number%400==0:
    print("今年是闰年")
else:
    print("今年不是闰年")
os.system("pause")

3、输入一个正整数,反转这个数字,例如输入123,输出321.

#TurnNumber.py
number=input("请输入一个正整数:")
turn=number[::-1]
print("这个正整数的反转为:{}".format(turn))

4、输入两个整数,求两个给定正整数的最大公约数和最小公倍数。

#CommonDivisorAndCommonMultiple.py
u=input("请输入两个整数(中间以空格隔开):")
u1=u.split()
num1,num2=int(u1[0]),int(u1[1])
if(num1==num2):
    print("两个给定正整数的最大公约数为%d" % (num1))
    print("两个给定正整数的最小公倍数为%d"%(num1))
else:
    a=num1
    b=num2
    while(num1%num2!=0):
        r=num1%num2
        num1=num2
        num2=r
    print("两个给定正整数的最大公约数为%d"%(r))
    p=a/r
    q=b/r
    cm=p*q*r
    print("两个给定正整数的最小公倍数为%d"%(cm))

5、输出前1000的素数。

#PrimeNumber.py
for i in range(2,1001):
    judge=0
    for j in range(1,i+1):
        if i%j==0:
            judge+=1
    if judge==2:
        print("%d"%(i))

6、给出 n,输出杨辉三角的前 n行。

#PascalTriangleV1.py

n=eval(input("请输入你想要的杨辉三角层数:"))
triangle=[[1],[1,1]]
for i in range(2,n):
    bef=triangle[i-1]
    ad=[1]
    for j in range(i-1):
        ad.append(bef[j]+bef[j+1])
    ad.append(1)
    triangle.append(ad)
for i in range(n):
    l=" "*(n-1-i)
    for j in triangle[i]:
        l+=str(j)+" "
    print(l)   

7、统计单词数,输入一个要查询的单词,以及一段英文短文,求出现的单词的个数,不区分大小写。

#CheckWord.py
def ReadIn():
    txt=open("Hamlet.txt","r").read()
    txt=txt.lower()
    for us in '!@#$%^&*()_+-={}:"<>?[];,./\|':
        txt=txt.replace(us," ")
    return txt
newtxt=ReadIn()
words=newtxt.split()
checkin=input("请输入你要查询的单词:")
count=0
for word in words:
    if(word==checkin):
        count+=1
print("你所查询的单词在Hamlet中出现的次数为:%d"%count)

8、输入一个正整数,判断是否是回文质数(回文数+质数)。

#PalindromePrimeNumbers.py
number=input("请输入一个正整数:")
length=len(number)
number1=int(number)
judge=0
if(length%2==0):
    print("此正整数不是回文质数。")
else:
    if(number==number[::-1]):
        for i in range(2,number1):
            if(number1%i==0):
                break
        else:
            print("此正整数是回文质数。")
    else:
        print("此正整数不是回文质数。")
            
    

9、计算字符串倒数第二个单词的长度,单词以空格隔开。同时计算最后一个单词ld中包含的次数。给定输入如下。(字符串处理,提示:可以灵活使用split()函数)

#CalWord.py
string=input("请输入一组字符串:")
item=string.split()
c=len(item)
if(c==1):
    print("无法查询倒数第二个单词")
else:
    length=len(item[-2])
    print("倒数第二个单词长度为:%d"%length)
item1=item[-1].count("ld")
print("最后一个单词中包含'ld'的次数%d"%item1)


10、用字典存储以下10个好朋友的姓名和年龄,然后: (字典的使用和遍历) - 遍历出名字和对应年龄 - 只遍历出朋友的名字 - 按字母顺序遍历出朋友的名字 - 遍历出所有你朋友的年龄,查看自己朋友都在什么年龄段 - 把遍历出的年龄去重。 - 插入18岁的“xiaoming” - 删除大于等于23岁的朋友

#dictionary.py
friends={'jiaLiang':23,'wangChen':24,'jiaMing':22,'wangJie':22,'yuQing':24,'wenZhen':23,'haoNan':25,'luYi':23,'boWen':23}

for a,b in friends.items():
    print(a+":",end="")  #遍历出名字和对应年龄
    print(b)
print("\n")

for a in friends.keys():
    print(a)  #只遍历出朋友的名字
print("\n")

names=sorted(friends.keys(),key=lambda x:x[0])
for name in names:
    print(name)  #按字母顺序遍历出朋友的名字
print("\n")

for b in friends.values():
    print(b)  #遍历出所有你朋友的年龄
print("\n")
names_1=set(friends.values())
names_2=list(names_1)
for name in names_2:
    print(name)  #把遍历出的年龄去重
print("\n")

friends["xiaoming"]=18   #插入新人
for a,b in friends.items():
    print(a+":",end="") 
    print(b)
print("\n")

del friends['jiaLiang']#删除符合条件的人
del friends['wangChen']
del friends['yuQing']
del friends['wenZhen']
del friends['haoNan']
del friends['luYi']
del friends['boWen']
for a,b in friends.items():
    print(a+":",end="") 
    print(b)
print("\n")



11.实现一个学生信息管理系统,能够新增学生信息,查询学生信息,删除学生信息,以及按照学号排序学生信息等功能。(使用C++或者python实现)

#Student.py
import os
from platform import platform
def options():
    print('''
    ====================学生信息管理系统====================
    本系统提供以下数种功能:
    1.新增学生信息
    2.查询学生信息
    3.删除学生信息
    4.按照高数成绩排序学生信息
    =======================================================
     ''')
def main():
    while True:
        options()
        option=int(input("尊敬的用户,请问您需要使用本系统实现以上哪种功能(请输入对应的序号):"))
        if option==1:
            add()
        elif option==2:
            see()
        elif option==3:
            delete()
        elif option==4:
            sort()
        else:
            print("您的需求本系统无法满足,请重新输入")
def add():
    students_information=[]
    while True:
        number=input("请输入学生学号(例:102201625):")
        name=input("请输入学生姓名:")
        try:
            score=int(input("请输入学生的高等数学成绩:"))
        except:
            print("输入出错,请重试!")
            continue
        student={'number':number,'name':name,'score':score}
        students_information.append(student)
        judge=input("是否需要继续新增学生信息(回答YES或NO)")
        if judge=='YES':
            continue
        else:
            break
    save(students_information)
    print("学生信息录入成功!")
def save(infor):
    try:
        txt=open('Student.txt','a',encoding='utf-8')
    except:
        txt=open('Student.txt','w',encoding='utf-8')
    for item in infor:
        txt.write(str(item)+'\n')
    txt.close()
def see():
    platform=[]
    while True:
        print("请注意:本系统依据学生姓名进行信息检索")
        name=input("请输入学生姓名:")
        with open('Student.txt','r',encoding='utf-8') as txt:
            txt1=txt.readlines()
            for item in txt1:
                txt2=dict(eval(item))
                if txt2['name']==name:
                    platform.append(txt2)
        fold(platform)
        platform.clear()
        judge=input("是否需要继续查询学生信息(回答YES或NO):")
        if judge=='YES':
            continue
        else:
            break
def fold(plat):
    if len(plat)==0:
        print("无法查询到学生信息")
        return
    for item in plat:
        print("学号:{:^10}  姓名:{:^10}  高数成绩:{:^10}".format(item.get('number'),item.get('name'),item.get('score')))
def delete():
    while True:
        student_name=input("请输入要删除的学生姓名:")
        with open('Student.txt','r',encoding='utf-8') as txt1 :
            infor=txt1.readlines()
        judge=0
        with open('Student.txt','w',encoding='utf-8') as txt2:
            d={}
            for item in infor:
                d=dict(eval(item))
                if d['name']!=student_name:
                    txt2.write(str(d)+'\n')
                else:
                    judge=1
            if judge==1:
                print("删除学生信息成功!")
            else:
                print("未找到对应学生!")
        put()
        judge=input("是否需要继续删除学生信息(回答YES或NO)")
        if judge=='YES':
            continue
        else:
            break
def put():
    show=[]
    with open('Student.txt','r',encoding='utf-8') as txt:
        students=txt.readlines()
    for item in students:
        show.append(eval(item))
    if show:
        fold(show)
def sort():
    while True:
        put()
        with open('Student.txt','r',encoding='utf-8') as txt:
            student_bef=txt.readlines()
        student_now=[]
        for item in student_bef:
            d=dict(eval(item))
            student_now.append(d)
        print("该功能是按照高数成绩进行排序")
        j=input("请选择是要升序(0)还是降序(1)")
        if j=='0':
            judge=False
        if j=='1':
            judge=True
        student_now.sort(key=lambda x:int(x['score']),reverse=judge)
        fold(student_now)
        judge1=input("是否需要继续排序学生信息(回答YES或NO)")
        if judge1=='YES':
            continue
        else:
            break

main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值