零基础学python 8 转啊转,数据类型转换(课后习题答案)

avatar 2017年4月1日10:47:59 评论 1,349

上节课我们的作业是跟时间有关,让我们来回顾一下上节课的习题:

1. 时间转换
我们都知道如下的换算:

  • 1 天 = 24小时
  • 1 小时 = 60 分钟
  • 1 分钟 = 60 秒

因此这就是咱们本节课的主题。请写一个名叫change_time的函数,传入一个整数参数表示秒数,请用最小的数字表示它等价于多少天,多少小时,多少分钟和多少秒,并用一句文本的形式表示出来。比如:
输入1254321,表示1254321秒,换算成最小整数表示的单位就是14天12小时25分钟21秒。那么就会输出:14 day(s) 12 hour(s) 25 minute(s) 21 second(s)这个字符串,请注意是字符串哦。
提示:
(1)str可以将数字转换成字符串形式
(2)字符串之间可以用+加号连接,比如print("a" + "b")会输出"ab"
(3)别忘了用上之前学过的%和//
以下是你要实现的几个例子:

函数调用命令 返回值
change_time(86404) 1 day(s) 0 hour(s) 0 minute(s) 4 second(s)
change_time(423) 0 day(s) 0 hour(s) 7 minute(s) 3 second(s)
change_time(1254321) 14 day(s) 12 hour(s) 25 minute(s) 21 second(s)

如何解决呢?

首先我们先来进行一下题目的分析:

首先输入的参数是一个整数,那么我们可以直接用来进行计算,方法也是类似上节课讲到的使用//地板除来获取大的单位的数,用%求余数来获取剩下的秒数,剩下的秒数用来求取更小的单位即可。最后特别要注意的是,因为计算的时候使用的是数字的计算,而要求输出的是一串字符串,因此,应该在输出前把数字转换成字符串,再行输出,否则会报错。同时使用+加号来连接字符串。上次练习的解析看这里:零基础学python 7 深入函数:指向函数,返回函数,空函数(课后习题答案)

以下是本课练习的参考答案:

def change_time(sec):
    # 请把代码写到这里来哦
    # 对应的英语:day天,hour小时,minute分钟,second秒
    # 首先计算1天,1小时,1分钟对应的秒数
    day = 24 * 60 * 60
    hour = 60 * 60
    minute = 60
    # 然后计算最小天数,小时数和分钟数,剩下的就是秒数了
    small_day = sec // day
    remain = sec % day
    small_hour = remain // hour
    remain = remain % hour
    small_minute = remain // minute
    remain = remain % minute
    return str(small_day) + " day(s) " + str(small_hour) + " hour(s) " + str(small_minute) + " minute(s) " + str(remain) + " second(s) "


print("Testing code for change_time() for 86404 is:", change_time(86404))
print("Testing code for change_time() for 423 is:", change_time(423))
print("Testing code for change_time() for 1254321 is:", change_time(1254321))

你答对了吗?

欢迎多多思考哦~我们下次见!!

零基础学python 8 转啊转,数据类型转换(课后习题答案)

avatar

发表评论

您必须才能发表评论!