1、定義一個圓類(Circle),求圓的面積和周長
# -*- coding: utf-8 -*-
import math
class Circle:
def __init__(self,r):
self.r = r
def get_area(self):
return self.r*self.r*math.pi
def get_cal(self):
return 2*self.r*math.pi
if __name__ == '__main__':
radius = float(input("請輸入圓的半徑:"))
if radius > 0 :
r1 = Circle(radius)
print("該圓的周長是{:.3f}".format(r1.get_cal()))
print("該圓的面積是{:.3f}".format(r1.get_area()))
else:
print("半徑不能小於0")
2、定義一個三角形類(Strange),屬性是三邊的長度,求三角形的面積和周長
# -*- coding: utf-8 -*-
import math
class Strange:
s = 0
def __init__(self,a,b,c):
self.a = a
self.b = b
self.c = c
def get_area(self):
#求面積,使用的海倫公式
s = (self.a+self.b+self.c)/2
return math.sqrt(math.sqrt(s*(s-self.a)*(s-self.b)*(s-self.c)))
def get_cal(self):
#求周長
s = self.a+self.b+self.c
return 2*s
if __name__ == '__main__':
print("請依次輸入三邊邊長:")
a =float(input("請輸輸入三邊之a:"))
b =float(input("請輸輸入三邊之b:"))
c =float(input("請輸輸入三邊之c:"))
'''
對輸入的三邊進行判斷(1:邊都要大於0,(2:兩邊之和大於第三邊。
'''
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
strange1 = Strange(a,b,c)
print("三角形的周長是:{:.3f},面積是:{:.3f}".format(strange1.get_cal(),strange1.get_area()))
else:
print("輸入的三條邊不滿足三角形的三邊參數!!!")
3.創建一個學員類(Student),並設計三個字段用於表示學生的成績
(語文、數學、英語);然後定義一個列表list表示一個班
的學生(10人),依次輸入每個學生的信息和成績,輸入
的同時將學員的每科成績劃分等級(100-90:A 89-80:
B 79-70:C 69-60:D 60以下:E)最後輸出所有學員的
信息
# -*- coding: utf-8 -*-
def Rank(sum):
#對成績的等級進行判斷
if 90 <= sum <= 100:
return "A"
elif 80 <= sum <90:
return "B"
elif 70 <= sum <80:
return "C"
elif 60 <= sum <70:
return "D"
elif sum < 60:
return "E"
class Student:
def __init__(self,name,sno,yuwen,shuxue,yingyu):
#初始化學生對象
self.name = name
self.sno = sno
self.yuwen = yuwen
self.shuxue = shuxue
self.yingyu = yingyu
def Rankyuwen(self):
#語文等級
return Rank(self.yuwen)
def Rankshuxue(self):
#數學等級
return Rank(self.shuxue)
def Rankyingyu(self):
#英語等級
return Rank(self.yingyu)
def All_News(self):
#輸出學生的所有信息
print("姓名:{},學號{},語文成績{}等級{},數學成績{}等級{},英語成績{}等級{}".format(self.name,self.sno,self.yuwen,self.Rankyuwen(),self.shuxue,self.Rankshuxue(),self.yingyu,self.Rankyingyu()))
if __name__ == "__main__":
list = []
ls = []
i = 1
#輸入10個學生個信息,進行處理,應再加入學號不能相同的判斷,可使用list列表中存放的學號進行判斷處理
while i <= 10:
name = input("第{}名學生名字:".format(i))
sno = int(input("第{}學生學號:".format(i)))
dir = {name:sno}
list.append(dir)
yuwen = float(input("第{}名學生的語文成績:".format(i)))
shuxue = float(input("第{}名學生的數學成績:".format(i)))
yingyu = float(input("第{}名學生的英語成績:".format(i)))
ls.append(Student(name,sno,yuwen,shuxue,yingyu))
i +=1
print(list)
print("所有學生信息:{}".format(list))
for i in range(0,10):
ls[i].All_News()
4.編一個關於求多個某門功課總分和平均分的程序。
1.每個學生信息包括姓名和某門功課成績。
2.假設5個學生。
3.類和對象的處理要合理
# -*- coding: utf-8 -*-
def Sum_Ave(num1,num2,num3,num4,num5):
'''
這裏我認爲求單科成績的總和和平均值,如果求某學生成績總和和平均值,作爲方法在類Student中創建
'''
return "成績總和是"+str(num1+num2+num3+num4+num5)+"平均成績是"+str((num1+num2+num3+num4+num5)/5)
class Student:
def __init__(self,name,sno,yuwen,shuxue,yingyu):
'''
對學生的姓名,學號,語文數學,和英語成績做初始化
'''
self.name = name
self.sno = sno
self.yuwen = yuwen
self.shuxue = shuxue
self.yingyu = yingyu
if __name__ == "__main__":
ls = []
i = 1
'''
依次輸入學生信息,並創建對象,添加到列表中。
'''
while i <= 5:
name = input("第{}名學生名字:".format(i))
sno = int(input("第{}學生學號:".format(i)))
yuwen = float(input("第{}名學生的語文成績:".format(i)))
shuxue = float(input("第{}名學生的數學成績:".format(i)))
yingyu = float(input("第{}名學生的英語成績:".format(i)))
ls.append(Student(name,sno,yuwen,shuxue,yingyu))
i += 1
print("共有5名同學,他們的成績如下:")
print("語文:{}".format(Sum_Ave(ls[0].yuwen,ls[1].yuwen,ls[2].yuwen,ls[3].yuwen,ls[4].yuwen)))
print("數學:{}".format(Sum_Ave(ls[0].shuxue,ls[1].shuxue,ls[2].shuxue,ls[3].shuxue,ls[4].shuxue)))
print("英語:{}".format(Sum_Ave(ls[0].yingyu,ls[1].yingyu,ls[2].yingyu,ls[3].yingyu,ls[4].yingyu)))
5.設計一個遊戲角色類
字段:角色名、血量、魔法、狀態
方法:釋放技能 被傷害
要求:設計要合理
# -*- coding: utf-8 -*-
class Role:
def __init__(self,name,HP,MP,status,skill):
'''
定義角色的名字,血量,藍量,狀態,以及技能和技能傷害值
'''
self.name = name
self.HP = HP
self.MP = MP
self.status = status
self.skill = skill
self.damage = (MP/HP)*10
def Skill(self,ra,rb):
'''
角色A對角色B發起攻擊,並進行藍量的判斷。
'''
if ra.MP > 0:
rb.HP -= rb.damage
ra.MP -= (self.HP/self.MP)*10
if ra.MP < 0:
ra.MP = 0
print("角色{}使用技能{}對{},造成傷害{}".format(r1.name,r1.skill,r2.name,r1.damage))
else:
print("沒藍了。")
def Roles(self):
print("角色{},剩餘HP{},剩餘MP{}".format(self.name,self.HP,self.MP))
if __name__ == "__main__":
'''
創建兩個角色
'''
r1 = Role("波哥哥",100,100,"健康","摸摸神功")
r2 = Role("老鄉",100,100,"亞健康","伏地神功")
while True:
'''
直到某一方血量爲0是跳出循環
'''
chioce = (int(input("請輸入1/2,1則{}發動技能,2則{}發動技能:".format(r1.name,r2.name))))
if chioce == 1:
r1.Skill(r1,r2)
r1.Roles()
r2.Roles()
elif chioce == 2:
r2.Skill(r2,r1)
r2.Roles()
r1.Roles()
else:
print("輸入無效")
if r1.HP == 0:
print("天殺了,波哥哥居然死啦!")
break
if r2.HP == 0:
print("誅殺此賊,幹得漂亮,真乃義舉!")
break
以上代碼可供參考,學習面向對象參考:點這裏