python编程基础Task10

习题P134

在这里插入图片描述
2.

在变量和函数名前加两个下划线“——”

在这里插入图片描述
原因:由于格式不当,对类的调用被误认为是类的一部分
改进:

class C:
    def myFun(self):
        print('Hello!')
c = C()
c.myFun()

在这里插入图片描述
4.

class Ticket():
    ticket = 100
    adult = 0
    kid = 0
    week = 0
    def __init__(self,a,k,w):
        self.adult = a
        self.kid = k
        self.week = w
    def output(self):
        if self.week ==0:
            print("工作日,有%d个大人和%d个小孩,需付%d元"%(self.adult,self.kid,self.adult*self.ticket+0.5*self.kid*self.ticket))
        else:
            print("周末,有%d个大人和%d个小孩,需付%d元"%(self.adult,self.kid,1.2*(self.adult*self.ticket+0.5*self.kid*self.ticket)))
a = list(map(int,input("几个大人?几个小孩?是周末吗?(工作日请输0)").split()))
test = Ticket(a[0],a[1],a[2])
test.output()

在这里插入图片描述
在这里插入图片描述

P153

new

创建示例对象

init

对实例对象初始化

str

当print时,打印出具有可读性的返回值

repr

当print时,打印对象的官方描述

import datetime
d = datetime.datetime.now()
print(str(d))
print(repr(d))

在这里插入图片描述

两者实现的功能相同,只是显示侧重点不同,一个注重可读一个注重准确

getitem

定义获取元素的行为

setitem

定义指定元素的行为

import time as t
from time import sleep
class MyTimer():
    def __init__(self):
        self.unit = ['年','月','日','时','分','秒']
        self.prompt = "未开始计时!"
        self.lasted = []
        self.begin = 0
        self.end = 0

    def __str__(self):
        return self.prompt
    __repr__ = __str__

    def start(self):
        self.begin = t.localtime()
        self.prompt = "提示:请先调用stop(()停止计时"
        print("计时开始")

    def stop(self):
        if  not self.begin:
            print("提示:请先调用start()进行计时!")
        else:
            self.end = t.localtime()
            self._calc()
        print("计时结束")

    def _calc(self):
        self.lasted = []
        self.prompt = "总共运行了:"
        for index in range(6):
            self.lasted.append(self.end[index] - self.begin[index])
            if self.lasted[index]:
                self.prompt += (str(self.lasted[index]) + self.unit[index])
        print(self.prompt)

t1 = MyTimer()
t1.start()
sleep(2)
t1.stop()

t2 = MyTimer()
t2.start()
sleep(1)
t2.stop()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值