鱼C论坛

 找回密码
 立即注册
查看: 2097|回复: 1

[已解决]零基础学python类和对象课后题

[复制链接]
发表于 2020-2-8 09:52:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
那个查票价系统:
周内:
成人100/人
周末:
成人120/人
儿童全部半价

我最后一行的p.fee()要怎么写?

(3,3)是我随便写的,要不然会报错

class Ticket():

    normal_fee=100
    half_fee=normal_fee/2
   
    fun_time=float(input('请输入游玩时间:(周内输入1,周末输入2)'))
    num_adult=float(input('请输入成人个数:'))
    num_child=float(input('请输入儿童个数:'))
   

    def fee(self,num_adult,num_child):
        self.fee=self.normal_fee*self.num_adult+self.half_fee*self.num_child
        if self.fun_time==1:
            print( self.fee)
        elif self.fun_time==2:
            print( self.fee*1.2)

p=Ticket()
p.fee(3,3)
最佳答案
2020-2-8 10:06:08
本帖最后由 dlnb526 于 2020-2-8 10:09 编辑

  1. class Ticket():

  2.     normal_fee=100
  3.     half_fee=normal_fee/2
  4.    
  5.     fun_time=float(input('请输入游玩时间:(周内输入1,周末输入2)'))
  6.     num_adult=float(input('请输入成人个数:'))
  7.     num_child=float(input('请输入儿童个数:'))
  8.    
  9.     def __init__(self):
  10.         self.fee(self.num_adult, self.num_child)
  11.         
  12.     def fee(self,num_adult,num_child):
  13.         self.fee=self.normal_fee*self.num_adult+self.half_fee*self.num_child
  14.         if self.fun_time==1:
  15.             print( self.fee)
  16.         elif self.fun_time==2:
  17.             print( self.fee*1.2)

  18. p=Ticket()
复制代码


随便改了一下,只做参考,在__init__(self)中调用fee方法


如果直接在外部调用,可以
  1. class Ticket():

  2.     normal_fee=100
  3.     half_fee=normal_fee/2
  4.    
  5.     fun_time=float(input('请输入游玩时间:(周内输入1,周末输入2)'))
  6.     num_adult=float(input('请输入成人个数:'))
  7.     num_child=float(input('请输入儿童个数:'))
  8.    

  9.         
  10.     def fee(self,num_adult,num_child):
  11.         self.fee=self.normal_fee*self.num_adult+self.half_fee*self.num_child
  12.         if self.fun_time==1:
  13.             print( self.fee)
  14.         elif self.fun_time==2:
  15.             print( self.fee*1.2)

  16. p=Ticket()
  17. p.fee(p.num_adult,p.num_child)
复制代码

也就是用p. 的形式调用实例化的p中的属性

希望能帮到你。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-8 10:06:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 dlnb526 于 2020-2-8 10:09 编辑

  1. class Ticket():

  2.     normal_fee=100
  3.     half_fee=normal_fee/2
  4.    
  5.     fun_time=float(input('请输入游玩时间:(周内输入1,周末输入2)'))
  6.     num_adult=float(input('请输入成人个数:'))
  7.     num_child=float(input('请输入儿童个数:'))
  8.    
  9.     def __init__(self):
  10.         self.fee(self.num_adult, self.num_child)
  11.         
  12.     def fee(self,num_adult,num_child):
  13.         self.fee=self.normal_fee*self.num_adult+self.half_fee*self.num_child
  14.         if self.fun_time==1:
  15.             print( self.fee)
  16.         elif self.fun_time==2:
  17.             print( self.fee*1.2)

  18. p=Ticket()
复制代码


随便改了一下,只做参考,在__init__(self)中调用fee方法


如果直接在外部调用,可以
  1. class Ticket():

  2.     normal_fee=100
  3.     half_fee=normal_fee/2
  4.    
  5.     fun_time=float(input('请输入游玩时间:(周内输入1,周末输入2)'))
  6.     num_adult=float(input('请输入成人个数:'))
  7.     num_child=float(input('请输入儿童个数:'))
  8.    

  9.         
  10.     def fee(self,num_adult,num_child):
  11.         self.fee=self.normal_fee*self.num_adult+self.half_fee*self.num_child
  12.         if self.fun_time==1:
  13.             print( self.fee)
  14.         elif self.fun_time==2:
  15.             print( self.fee*1.2)

  16. p=Ticket()
  17. p.fee(p.num_adult,p.num_child)
复制代码

也就是用p. 的形式调用实例化的p中的属性

希望能帮到你。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-6 02:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表