paddle領航團基礎python課程
- 飛槳領航團
- 領航團簡介
- 第一題(30分)
- 第二題(30分)
飛槳領航團
領航團簡介
飛槳領航團是飛槳開發者的興趣社區,為開發者們提供豐富的本地技術沙龍、Meetup、及線上交流平臺,面向所有對人工智能及深度學習領域感興趣的開發者開放,在各個城市/高校領航團團長及成員的熱情支持下,飛槳領航團已建立132個社群,覆寫28個省級行政區,108個高校,并且在持續增長中,歡迎開發者們加入領航團,結識更多本地技術同好,共建開源社區,共享開源成果與快樂,
領航團歡迎您的加入
領航團傳送門
第一題(30分)
資料如下:
stu1.txt 孫同學,2020-5-21,20,'男',77,56,77,76,92,58,-91,84,69,-91
stu2.txt 趙同學,2020-11-3,24,'女',65,68,72,95,-81,71,86,91,57,91
stu3.txt 王同學,2021-8-7,25,'男',87,78,90,-76,88,47,100,65,69,100
stu4.txt 李同學,2021-8-10,29,'男',92,54,85,71,-91,68,77,68,95,95
以上四個txt檔案在work路徑下可以找到,
定義Student類,包括name、dob、age、gender和score屬性,包括top3方法用來回傳學生的最大的3個成績(可重復)、sanitize方法用來將負的分數變為正的分數,負的分數可能是輸入錯誤,宣告stu_list物件組數用于存盤所有的學生物件,最后輸出所有的學生資訊包括姓名、生日、年齡、性別、最高的3個分數,
第一題的輸出結果如下,供參考:

def opentext(txt):
with open(txt) as f:
line = f.readline()
# print(line.strip().split(','))
return line.strip().split(',')
# 請在此處完成代碼
class Student():
def __init__(self, name, dob, age, gender, score):
self.name = name
self.dob = dob
self.age = age
self.gender = gender
self.score = score
def name(self):
return self.name
def dob(self):
return self.dob
def age(self):
return self.age
def gender(self):
return self.gender
def top3(self):
newlist = []
for t in self.score:
t = int(t)
if t < 0 :
t = -t
newlist.append(t)
return sorted(newlist)[::-1][:3]
def printf(textname):
txtlist = opentext(textname)
name = txtlist.pop(0)
dob = txtlist.pop(0)
age = txtlist.pop(0)
gender = txtlist.pop(0)
student = Student(name, dob, age, gender, txtlist)
# print(student.name)a
print(f'姓名:{student.name} 生日:{student.dob} 年齡:{student.age} 性別:{student.gender} 分數:{student.top3()}')
printf('work/stu1.txt')
printf('work/stu2.txt')
printf('work/stu3.txt')
printf('work/stu4.txt')
姓名:孫同學 生日:2020-5-21 年齡:20 性別:'男' 分數:[92, 91, 91]
姓名:趙同學 生日:2020-11-3 年齡:24 性別:'女' 分數:[95, 91, 91]
姓名:王同學 生日:2021-8-7 年齡:25 性別:'男' 分數:[100, 100, 90]
姓名:李同學 生日:2021-8-10 年齡:29 性別:'男' 分數:[95, 95, 92]
第二題(30分)
資料格式如下:
stu5.txt 特長同學,2020-10-5,20,'男',180,87,98,77,76,92,58,-76,84,69,-47
stu6.txt 特長同學,2020-10-6,20,'女',230,76,48,82,88,92,58,-91,84,69,-68
以上兩個txt檔案在work路徑下可以找到,
定義Spostudent、Artstudent為Student的子類,在子類的屬性里面新增了spe為特長分數,Spostudent包括的top3方法回傳的是最低的3個得分(可重復),Artstudent包括top3方法回傳的是最高的3個得分(可重復),最后使用多型的方式輸出2個特長同學的姓名、生日、年齡、性別、分數、特長分,
第二題的輸出結果如下,供參考:

# 請在此處完成代碼
class Spostudent(Student):
def __init__(self, name, dob, age, gender, score, spe):
Student.__init__(self, name, dob, age, gender, score)
self.spe = spe
def spe(self):
return self.spe
class Artstudent(Student):
def __init__(self, name, dob, age, gender, score):
Student.__init__(self, name, dob, age, gender, score)
def top3(self):
newlist = []
for t in self.score:
t = int(t)
if t < 0 :
t = -t
newlist.append(t)
return sorted(newlist)[0:3]
def printf(text,a):
txtlist = opentext(text)
name = txtlist.pop(0)
dob = txtlist.pop(0)
age = txtlist.pop(0)
gender = txtlist.pop(0)
spe = txtlist.pop(0)
spostudent = Spostudent(name, dob, age, gender, txtlist, spe)
artstudent = Artstudent(name, dob, age, gender, txtlist)
if a == 0:
a = spostudent.top3()
else:
a = artstudent.top3()
print(f'姓名:{spostudent.name} 生日:{spostudent.dob} 年齡:{spostudent.age} 性別:{spostudent.gender} 分數:{a} 特長分:{spostudent.spe}')
printf('work/stu5.txt', 1)
{spostudent.gender} 分數:{a} 特長分:{spostudent.spe}')
printf('work/stu5.txt', 1)
printf('work/stu6.txt', 0)
姓名:特長同學 生日:2020-10-5 年齡:20 性別:'男' 分數:[56, 58, 69] 特長分:180
姓名:特長同學 生日:2020-10-6 年齡:20 性別:'女' 分數:[92, 91, 91] 特長分:230
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/258731.html
標籤:python

