永发信息网

用python写一个程序

答案:3  悬赏:30  手机版
解决时间 2021-01-03 18:06
能够输入成绩和姓名并对已输入的成绩和姓名进行排序
最佳答案
其实这个不难,以下代码做个参考吧。
#-*-coding:utf-8-*-
class Student(object):
    """
    自定义Student类
    """
    def __init__(self, name, score):
    # 初始化Student,参数name,score
        self.name = name
        self.score = score
    def __cmp__(self, other):
    # 重写比较方法,根据Student类属性score进行比较
        return cmp(self.score, other.score)
    def show(self):
        return 'name:'+self.name+'; score:'+str(self.score)

def get_input():
    name = raw_input('input name > ')
    if not name: # 当姓名输入为空时,返回None
        return (None,None)
    score = raw_input('input %s\'s score > ' % name)
    if name and score:
        return (name,int(score)) # 为方便比较,将score强制转换为int型
    else:
        return (None,None)

def main():
    s_list = []
    while True: # 一直循环输入姓名及成绩
        name,score = get_input()
        if name and score:
            s = Student(name, score)
            s_list.append(s)
        else: # 当输入姓名或成绩为空时跳出循环
            break
    s_list.sort() # 对Student实体进行排序
    for i,s in enumerate(s_list): # 遍历已经排序的实体列表,并进行显示
        print ' '.join([str(i+1), s.name, str(s.score)])

if __name__ == '__main__':
    main()输入及输出结果如下,当然你也可以修改下 s_list 方便测试
input name > a
input a's score > 97
input name > b
input b's score > 95
input name > c
input c's score > 96
input name > 
1 b 95
2 c 96
3 a 97 注释已经比较详细了,应该能看懂。
全部回答
def input_1():     a = raw_input('please input something:\n')     global st     st = list(a)     print 'now the list you just inputted is:\n',st success = true while success:     input_1()     for i in st:         c = st.count(i)         if c >= 3:             print 'you lost!'             print 'error: the number of %s you just input is %s '%(i,c)             success = true             break         print 'the number of %s you inputted is %s time(s)'%(i,c)         success = false         print 'success!'
举个python的简单函数作为例子。代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*- # 可写函数说明 def changeme( mylist ):    "修改传入的列表"    mylist.append([1,2,3,4]);    print "函数内取值: ", mylist    return # 调用changeme函数 mylist = [10,20,30]; changeme( mylist ); print "函数外取值: ", mylist
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
阅读理解Whatwouldyoudoifyoufoundasnake
酒店健身房在几楼(急需英文翻译)
医保卡里的钱是怎么花的?
单选题美国科学家安德鲁·法尔和克雷格·梅洛
温带季风气候形成原因
单选题A flag is _____ a&nb
大家的电饼铛第一次买回来是怎么清洗的?
沙县到龙岩土楼多少公里
学校新买的排球个数比足球多60个,足球个数的8
Please open the window, ?A. can’t youB. a
农村一二三产怎样融合发展
梦见和仇人说话
100%感觉的内衣都不打折吗
使命召唤ol总是未响应或者闪退
Haier鸆XW-200-E800C6T油烟机好不好?性价比
推荐资讯
3又8分之3*(8又3分之1-3又8分之1)/1又24分之1
漯河市中医院停车场地址在什么地方,想过去办
黄油相机怎么使用
三鼎家政服务公司到底怎么样呀
根据提供的仪器连接装置,只需写出使用仪器的
银鱼干一般保质期多久
世界上票房收入最多的电影(计入通货膨胀)?
诺安莱阳食品安全中心(莱阳市环境保护局龙旺
公路车自行车买哪种好
来自星星的你是边写边拍边播吗?
解答题关于x的方程a(x+m)2+b=0的解是x1=-2
韩文音译"巴布"是什么意思?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?