用python写一个程序
答案:3 悬赏:30 手机版
解决时间 2021-01-03 18:06
- 提问者网友:浪荡绅士
- 2021-01-03 00:49
能够输入成绩和姓名并对已输入的成绩和姓名进行排序
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-01-06 22: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 注释已经比较详细了,应该能看懂。
#-*-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 注释已经比较详细了,应该能看懂。
全部回答
- 1楼网友:掌灯师
- 2021-01-06 23:30
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!'
- 2楼网友:野味小生
- 2021-01-06 22:16
举个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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯