类的练习题:
1.创建一个名为User 的类,其中包含属性first_name 和last_name ,还有用户简介通常会存储的其他几个属性。在类User 中定义一个名为describe_user() 的方法,它打印用户信息摘要;再定义一个名为greet_user() 的方法,它向用户发出个性化的问候。创建多个表示不同用户的实例,并对每个实例都调用上述两个方法。
– python
class User:
def __init__(self,first_name,last_name,height,weight):
self.first_name=first_name
self.last_name=last_name
self.height = height
self.weight = weight
def describe_user(self):
print(self.last_name+self.first_name +"的信息是:身高{},体重{}".format(self.height,self.weight))
def greet_user(self,content):
print(self.last_name+self.first_name+content)
#创建实例
u1=User("三","张","165","100")#实例是类名加参数
u1.describe_user()
u1.greet_user("你今天真好看")
u2=User("四","李","185","140")
u2.describe_user()
u2.greet_user("你今天真帅")
注意点:1、如果类里面有初始化参数,创建实例的时候,必须在实例里面传递对应个数的参数
2.调用函数的时候实例调用请复习下类函数,静态函数,实例函数
2.定义一个学生类。1)有下面的类属性:
1 .姓名2. 年龄3 .成绩(语文,数学,英语)[每课成绩的类型为整数]
2)类方法:
1.获取学生的姓名:get_name() 返回类型:str
2.获取学生的年龄:get_age() 返回类型:int
3.返回3门科目中最高的分数。get_course() 返回类型:int
写好类以后,可以定义2个同学测试下:
zm = Student(‘zhangming’,20,[69,88,100])
返回结果:zhangming 20 100
class Student:
def __init__(self,name,age,score):
self.name=name
self.age=age
self.score = score
def get_name(self):
return (str(self.name))
def get_age(self):
return (int(self.age))
def get_score(self):
return int(max(self.score))
Student_score = Student("张三",20,[69,88,100])
print(Student_score.get_name())
print(Student_score.get_age())
print(Student_score.get_score())
#拓展:如果我的成绩放在了字典里面
score={"语文":110,"数学":140,"英语":120}
print(max(score.values()))
3.按照以下要求定义一个游乐园门票类,并创建实例调用函数,完成儿童和大人的总票价统计(人数不定,由你输入的人数个数来决定)
1)平日票价100元
2)周末票价为平日票价120%
3)儿童半价
#这是我的写
class Ticket:
def __init__(self,price=100):
self.price=price
# self.audlt=adult
# self.child =child
def get_ticket_price(self):
adult=int(input("请输入大人的人数:"))
child=int(input("请输入儿童的人数:"))
time=int(input("1-5为工作日,6-7为周末,请输入购票时间:"))#如果不添加int会一直提示您输入的价格有误
if time in range(1,5):
print("您需要支付的价格为:{}".format(adult*self.price+child*self.price*0.5))
elif time in range(6,8):
print("您需要支付的价格为:{}".format(adult*self.price*1.2+child*self.price*0.5*1.2))
else:
print("您输入的价格有误")
Ticket().get_ticket_price()
#总结:使用return的好处是使得函数里边的代码精简,只需要在调用的时候想输入什么样的话语就输入什么样的话语,详见下面的代码
class Ticket:
def __init__(self,price=100):
self.price=price
def ticket_price(self):
Day=int(input("请输入您要买哪一天的票1-5代表平日6-7代表周末:"))
Adult=int(input("请输入成人的个数:"))
Child=int(input("请输入儿童的个数:"))
if Day in range(1,6):
total_price=Adult*self.price+Child*self.price*0.5
elif Day in range(6,8):
total_price=Adult*self.price*1.2+Child*self.price*0.5*1.2
else:
print("您输入有误,请重新输入")
return total_price
Price=Ticket().ticket_price()
print("您需要支付{}元".format(Price))
4.人和机器猜拳游戏写成一个类,有如下几个函数:
1)函数1:选择角色 1 曹操 2张飞 3 刘备
2)函数2:角色猜拳 1剪刀 2石头 3布 玩家输入一个1-3的数字
3)函数3:电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果
4)函数4:角色和机器出拳对战,对战结束后,最后出示本局对战结果…赢…输,然后提示用户是否继续?按y继续,按n退出。
5)最后结束的时候输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
import random
class Man_machine_war:
role_dict={1:"曹操", 2:"张飞", 3: "刘备"}
punch_dict={1:"剪刀", 2:"石头", 3: "布"}
def get_role_name(self):#获取角色名
role_num=int(input("请选择一个角色:1 曹操 2张飞 3 刘备"))
return self.role_dict[int(role_num)]
def get_role_punch(self):#角色出拳
punch_num=input("请出拳:1剪刀 2石头 3布 请输入一个1-3的数字")
# return self.punch_dict[int(punch_num)]
return int(punch_num)
def get_computer_punch(self):#电脑出拳
punch_num=random.randint(1,3)
print("电脑出拳:{}".format(punch_num))
#return self.punch_dict[int(punch_num)]
return int(punch_num)
def games(self):#r人机对战
role_win = 0 # 角色赢
cp_win = 0 # 电脑赢
draw = 0 # 平局
role_name = self.get_role_name() # 获取角色名
while True:
role_punsh=self.get_role_punch()#角色出拳
computer_punsh=self.get_computer_punch()#电脑出拳
print(role_name+"出拳为{},电脑出拳为{}".format(self.punch_dict[role_punsh],self.punch_dict[computer_punsh]))
if role_punsh-computer_punsh==1 or role_punsh-computer_punsh==-2:
role_win+=1#角色赢了
print("角色赢了")
elif role_punsh-computer_punsh==-1 or role_punsh-computer_punsh==2:
cp_win+=1#电脑赢了
print("电脑赢了")
elif role_punsh-computer_punsh==0:
draw += 1 # 平局
print("平局")
choose=input("您是否要继续?按y继续,按n退出")
if choose=="n":
break
# return role_win,cp_win,draw#返回输赢
print("角色赢了{}局,电脑赢了{}局,平局{}".format(role_win, cp_win, draw))
if __name__=="__main__":
Man_machine_war().games()