博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python - work5 - 类与对象
阅读量:6086 次
发布时间:2019-06-20

本文共 6607 字,大约阅读时间需要 22 分钟。

# -*- coding:utf-8 -*- ''' @project: jiaxy @author: Jimmy @file: work_20181119.py @ide: PyCharm Community Edition @time: 2018-11-19 13:53 @blog: https://www.cnblogs.com/gotesting/ ''' ''' 1:创建一个名为 User 的类, 其中包含属性 first_name 和 last_name,还有用户简介通常会存储的其他几个属性。 在类 User 中定义一个名为 describe_user()的方法,它打印用户信息摘要;再定义一个名为 greet_user()的方法,它向用户发出个性化的问候。 创建多个表示不同用户的实例,并对每个实例都调用上述两个方法。  ''' class User:     def __init__(self,first_name,last_name,age,hobby):         self.first_name = first_name         self.last_name = last_name         self.age = age         self.hobby = hobby     def describe_user(self):         print('姓名:{0}{1}'.format(self.last_name,self.first_name))         print('年龄:{0}岁'.format(self.age))         print('爱好:{0}'.format(self.hobby))     def greet_user(self,greet):         print('{0}{1},{2}'.format(self.last_name,self.first_name,greet)) p1 = User('xy','Jia',18,'Play Games') p1.describe_user() p1.greet_user('你真的好帅!') p2 = User('hm','Zhao',18,'Sleep') p2.describe_user() p2.greet_user('你真是美丽冻人!') ''' 2:定义一个学生类。 1)有下面的类属性: 1 姓名 2 年龄 3 成绩(语文,数学,英语)[每课成绩的类型为整数] ,均放在初始化函数里面。 2)类方法: a)获取学生的姓名:get_name() 返回类型:str b)获取学生的年龄:get_age() 返回类型:int c) 返回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):         get_name = self.name         return get_name     def get_age(self):         get_age =  self.age         return get_age     def get_score(self):         max_score = max(self.score)         return max_score zm =  Student('zhangming',20,[69,88,100]) name = zm.get_name() age = zm.get_age() score = zm.get_score() print(''' zm同学的信息如下: 姓名:{0} 年龄:{1} 最高分数:{2} '''.format(name,age,score)) ''' 3.人和机器猜拳游戏写成一个类,有如下几个函数: 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 MoraGame:     # 用户选择角色     def user_role(self):         role_dict = {"1":'曹操','2':'张飞','3':'刘备'}         while True:             role_id = input(''' 请选择角色:     1 : 曹操     2 : 张飞     3 : 刘备 输入序号即可:\n'''                   )             if role_id in role_dict.keys():                 break         role_name = role_dict[role_id]         return role_name     # 用户猜拳     def user_mora(self):         mora_dict =  {'1':'剪刀','2':'石头','3':'布'}         while True:             mora_user_id = input(''' 请猜拳:     1 : 剪刀     2 : 石头     3 : 布 输入序号即可:\n'''                   )             if mora_user_id in mora_dict.keys():                 break         mora_user = mora_dict[mora_user_id]         return mora_user     # 电脑随机猜拳     def computer_mora(self):         mora_dict =  {'1':'剪刀','2':'石头','3':'布'}         mora_computer_id = random.randint(1,3)         mora_computer_id = random.randint(1,3)         mora_computer = mora_dict[str(mora_computer_id)]         return mora_computer     # 双方对战及猜拳结果统计     def battle(self):         count = 0         count_win = 0         count_lose = 0         count_dogfall = 0         continue_list = ['y','n']         role = self.user_role()         # 猜拳判断及计数         while True:             count += 1             mora_user = self.user_mora()             mora_computer = self.computer_mora()             # 双方战平             if mora_user == mora_computer:                 print(''' 您猜拳:{0} 电脑猜拳:{1} 对战结果:{2}                 '''.format(mora_user,mora_computer,'双方战平!'))                 count_dogfall += 1             # 先根据角色输入,再根据电脑输入,判断输赢             else:                 if mora_user == '剪刀':                     if mora_computer == '石头':                         print(''' 您猜拳:{0} 电脑猜拳:{1} 对战结果:{2}                     '''.format(mora_user,mora_computer,'您输了!'))                         count_lose += 1                     else:                         print(''' 您猜拳:{0} 电脑猜拳:{1} 对战结果:{2}                     '''.format(mora_user,mora_computer,'您赢了!'))                         count_win += 1                 elif mora_user == '石头':                     if mora_computer == '剪刀':                         print(''' 您猜拳:{0} 电脑猜拳:{1} 对战结果:{2}                     '''.format(mora_user,mora_computer,'您赢了!'))                         count_win += 1                     else:                         print(''' 您猜拳:{0} 电脑猜拳:{1} 对战结果:{2}                     '''.format(mora_user,mora_computer,'您输了!'))                         count_lose += 1                 elif mora_user == '布':                     if mora_computer == '剪刀':                         print(''' 您猜拳:{0} 电脑猜拳:{1} 对战结果:{2}                     '''.format(mora_user,mora_computer,'您输了!'))                         count_lose += 1                     else:                         print(''' 您猜拳:{0} 电脑猜拳:{1} 对战结果:{2}                     '''.format(mora_user,mora_computer,'您赢了!'))                         count_win += 1             # 判断输入是否为y,n,若不是,提示重新输入             while True:                 continue_or_not = input('是否继续?输入y继续,输入n退出:\n')                 if continue_or_not in continue_list:                     break             # 若输入为n,退出循环             if continue_or_not == 'n':                 break         print('{0}您好,您一共猜拳{1}次,赢{2}次,输{3}次,打平{4}次'.format(role,count,count_win,count_lose,count_dogfall)) m1 = MoraGame() m1.battle() ''' 4:按照以下要求定义一个游乐园门票类,并创建实例调用函数,完成儿童和大人的总票价统计(人数不定,由你输入的人数个数来决定) 1)平日票价100元  2)周末票价为平日票价120%  3)儿童半价 ''' import datetime class AmusementParkTicket:     ticket_workday_adults = 100     ticket_workday_childs = 50     def workday(self):         # 获取当前工作日:周一到周天分别为0-6         today = datetime.datetime.now().weekday()         # 工作日票价         if  4 >= today >= 0:             ticket_adults = self.ticket_workday_adults             ticket_childs = self.ticket_workday_childs         # 周末票件         else:             ticket_adults = self.ticket_workday_adults * 1.2             ticket_childs = self.ticket_workday_childs * 1.2         return ticket_adults,ticket_childs     def get_tickets_count(self,adultsNum,childsNum):         tickets_adults_today,tickets_child_today = self.workday()         # 分别计算大人总票价、儿童总票价、总票价         tickets_adults_count = tickets_adults_today * adultsNum         tickets_childs_count = tickets_child_today * childsNum         tickets_count = tickets_adults_count + tickets_childs_count         print('{0}个儿童和{1}个大人的总票价为:{2}元。'.format(childsNum,adultsNum,tickets_count)) a1 = AmusementParkTicket() a1.get_tickets_count(2,4) a1.get_tickets_count(10,20)

转载于:https://www.cnblogs.com/gotesting/p/9984172.html

你可能感兴趣的文章
针对Android的Pegasus恶意软件版本和针对iOS的有什么不同?
查看>>
全局探色器
查看>>
Hive Export和Import介绍及操作示例
查看>>
http://mongoexplorer.com/ 一个不错的 mongodb 客户端工具。。。
查看>>
Xcode 4.3 使用xcodebuild命令编译项目环境设置
查看>>
上传jar包到nexus私服
查看>>
Why Namespace? - 每天5分钟玩转 OpenStack(102)
查看>>
Project:如何分析项目中的资源分配情况
查看>>
HDU 4803 Poor Warehouse Keeper (贪心+避开精度)
查看>>
小错误汇总
查看>>
AVX2整数向量运算
查看>>
POJ2559 HDU1506 ZOJ1985 Largest Rectangle in a Histogram【堆栈】
查看>>
POJ NOI0105-41 数字统计
查看>>
各类电压标准
查看>>
Yii2 提供可以用属性的方式去获取类的一个方法
查看>>
安装Jenkins(基于Ubuntu Desktop 12.04 LTS)
查看>>
c++复习总结
查看>>
Cow Uncle 学习了叉积的一点运用,叉积真的不错
查看>>
caffe源码 池化层 反向传播
查看>>
scikit-learn包的学习资料
查看>>