# -*- 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)

python - work5 - 类与对象的更多相关文章

  1. python - work5 - 类与对象 - 拓展题

    ''' 5:购物车类,包含的功能如下,请自行设计这个类以及类里面的方法:1)用户输入工资后,打印商品列表(商品列表自行设计展示模式)2)允许用户根据商品编号去选择商品3)用户选择商品后,检查余额是否足 ...

  2. 1.面向过程编程 2.面向对象编程 3.类和对象 4.python 创建类和对象 如何使用对象 5.属性的查找顺序 6.初始化函数 7.绑定方法 与非绑定方法

    1.面向过程编程 面向过程:一种编程思想在编写代码时 要时刻想着过程这个两个字过程指的是什么? 解决问题的步骤 流程,即第一步干什么 第二步干什么,其目的是将一个复杂的问题,拆分为若干的小的问题,按照 ...

  3. python的类和对象2(self参数)

    python的类和对象2(self参数) 1.python里面对象的方法都会有self参数,它就相当于C++里面的this指针:绑定方法,据说有了这个参数,Python 再也不会傻傻分不清是哪个对象在 ...

  4. Python初识类与对象

    Python初识类与对象 类与对象 世界观角度分析类与对象 类是一个抽象的概念,而对象是一个实体的存在,对象由类创造而出,每个对象之间互相独立互不影响,一个对象可以同时拥有多个类的方法,实例化就是通过 ...

  5. python的类与对象

    类与对象 1.什么是类 类和函数一样是程序编程的一种方式,在处理某些问题的时候类比函数更加适合让编程变得简化,在python里面函数式编程和类编程都是为了简化代码的一种编程方式,具体应用那个则由具体问 ...

  6. python的类和对象——番外篇(类的静态字段)

    什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...

  7. python的类和对象——进阶篇

    写在前面的话 终于,又到了周五.当小伙伴们都不再加班欢欢喜喜过周末的时候,我刚刚写完这一周的游戏作业,从面对晚归的紧皱眉头到现在的从容淡定,好像只有那么几周的时间.突然发现:改变——原来这么简单.很多 ...

  8. Python 定制类与其对象的创建和应用

    1.创建新类Athlete,创建两个唯一的对象实例sarah james,他们会继承Athlete类的特性 >>> class Athlete: def __init__(self, ...

  9. 【Python】类和对象、继承、使用文件、存储、异常、标准库(不懂)

    当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self ...

随机推荐

  1. ABAP事件的简单用法

    1.1.事件: 用于捕获某类对象状态的改变来触发事件的方法,并进行处理 1.2.定义:可以在类或接口中进行声明 EVENTS|CLASS-EVENTS evt  EXPORTING … VALUE(p ...

  2. echarts使用中的那些事儿(二)

    然而第二天的事情你怎么能猜到客户的心思呢: 客户:右边的是啥? 偶:可放大缩小查看各个时期的数据. 客户:把它去掉吧,全部直观显示. 偶:哦,不过数据过多的话会导致页面过长的. 客户:只有你知道这个可 ...

  3. excel如何显示多个独立窗口

    https://blog.csdn.net/tigaobansongjiahuan8/article/details/76861084

  4. pre-empting taskintel手册-Chapter7-Task Management

    这节描述了IA-32架构的任务管理功能,只有当处理器运行在保护模式的时候,这个功能才是有效的,这节的侧重点在32位任务和32位TSS结构上,关于16位的任务和16位TSS结构,请看7.6节,关于64位 ...

  5. POJ 2411 Mondriaan's Dream (状压DP,骨牌覆盖,经典)

    题意: 用一个2*1的骨牌来覆盖一个n*m的矩形,问有多少种方案?(1<=n,m<=11) 思路: 很经典的题目,如果n和m都是奇数,那么答案为0.同uva11270这道题. 只需要m个b ...

  6. CF Gym 100187A Potion of Immortality (思路,最坏情况的最小损失)

    根据兔子试药情况可以缩小范围,如果死了,不在试过的药里面,如果活着,在试过的药里. 最糟的情况: 两个原则 1.能确定魔药所在的范围的尽量大,2.死得兔子尽量多. 如果当前不知道情况的药n为k的二倍以 ...

  7. [神经网络]一步一步使用Mobile-Net完成视觉识别(三)

    1.环境配置 2.数据集获取 3.训练集获取 4.训练 5.调用测试训练结果 6.代码讲解 本文是第三篇,获取tfboard训练集. 前面我们拿到了所有图片对应的标注信息的xml文件,现在我们需要先把 ...

  8. python_99_面向对象多态

    #多态:一种接口,多种实现.主要作用:实现接口重用 #方法1: class Animal(object): def __init__(self,name): self.name=name class ...

  9. 《毛毛虫团队》第九次团队作业:BETA冲刺与团队项目验收

    一:实验名称:Beta冲刺与验收准备 二:实验目的与要求 (1)掌握软件黑盒测试技术: (2)学会编制软件项目总结PPT.项目验收报告: (3)掌握软件项目验收内容,验收流程. 三.实验内容与步骤 任 ...

  10. poi实现Excel输出

    /** * 第一个demo 导出Excel文件 * 第一行 第三个单元格中 写入 zhangsan */ @Test public void test1() throws IOException { ...