python定义一个学生类姓名、年龄、性别、成绩、你成绩评价_python练习------类的练习...

类的练习题:

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()

猜你喜欢

转载自blog.csdn.net/weixin_39744554/article/details/110787819