欢迎一起学习Python编程 网址 http://www.tutorialspoint.com/execute_python_online.php
今天完成两篇作业。
老师补发的作业1
我的作业截图
这个作业遭遇了两个变数。
输入完成后,检查到第八行,看到Shanghai,想换成Beijing,但上次的尝试失败了,就没敢改动。第十行,12前面是两个等号,我误以为连字符,上下两行的连字符没法弄啊,就输入了两个--。
果然,执行出错。提示第十行出错,我打开Word文档,费劲巴拉地找符号库,想找双行的连字符,后来才醒悟,就是两个等号。
第二次执行,错,提示坚持时间。群主写的是12点吃饭,现在才10点,改。好像第九行的now提示了点什么,但当时忽略了,看不懂程序语言。
这一次感到计算机是可以对话的,不是死的。程序的本质是语言是人机交流,它后面支撑的是逻辑。要看书了!群主发的共享材料准备啃啃试试。要做减法,每天又是口语又是写作又是理财……,视力严重下降,终日疲于奔忙不见功效。要收缩战线聚焦一点。
第三次执行,成功。
但上传是出了问题。昨天复制粘贴没问题,今天死活不出,就显示出=。最后发现,如果鼠标在执行后显示的部分,就复制不了。鼠标要在代码部分才行。
代码讲解
第一行# Hello World program in Python在python里#后面都是注释,是给人看的,让机器忽略的。
第二行#coding=utf-8也有别的写法#-*- coding: utf8 -*-简单说就是一种包含了很多字符的编码方式。
第三行代码import datetime 给python说“打开时间工具箱吧”。
第四行代码import pytzimport就是打开,导入功能,pytz是一个时区工具包。
第五行import sys 引入系统的函数,要让程序显示中文,需要用这个sys模块里的函数来设置程序可以显示中文(直接试试不要接下来的2行,看能显示中文不?)
第六第七行 reload(sys)
sys.setdefaultencoding('gbk')这两行设置了程序可以对外输出中文。这两句不敲也能出一样的结果。
第八行代码tz = pytz.timezone('Asia/Shanghai') 设置系统时区是“亚洲/上海"时区。
第九行代码now = datetime.datetime.now(tz)
这行得到我们时区下的当前时间。导入datetime工具包,下面就是到工具包里拿出了datetime功能,然后从这个功能里调用了now这个小功能。得到当前时间。
可能你很佩服大大,说“大大,你怎么知道从datetime里去取datetimetime功能,然后再调用呢?“,我会笑嘻嘻的给你说,要听快的还是慢的?要快的,就直接google,baidu查,能查到。要慢的,就是去研究python的厚厚程序api说明手册,然后查。
datetime模块定义了下面这几类:
datetime.date:表示日期的类。常用的属性有year, month, day;
datetime.time:表示时间的类。常用的属性有hour, minute, second,microsecond;
datetime.datetime:表示日期时间。
datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
datetime.tzinfo:与时区有关的相关信息。
datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间。个人觉得这句话的理解方式就是记住这个套路。
第十行第十一行代码 ifnow.strftime("%H")=="12":
print "中午吃饭了"
接下来,就是用判断if去判断下,现在时间是不是中午12点。很多同学就在这里出的问题?
不在中午敲这个代码,结果当然不会输出。时间都不是12点,接下来的print肯定不会打印。
if是判断的意思。记住,以后判断就用(ifxxxxx :)这个样子。
为什么now后面接个strtime呢,因为我告诉你,你可以直接打印下now( print now )看看什么样子。肯定不会是你需要的数字。所以,我们会给python说,“乖,把取出的时间,按需要的格式给我吧”,然后strtime就是这个意思。然后%H就代表Hour。
问题来了,如果要输出当前是多少分,多少秒呢?记住前面一定要有个%,这个就留作思考吧!
思考题答案
if now.strftime("%H:%M:%S")=="15:53:50":
今天的作业 努力一遍过,呵呵。
打脸了……又是三遍才过!失败原因:
第一次失败,因为第十行后面少了冒号;
第二次失败,是检查不细导致的,以为第十行改好了肯定行了,兴冲冲点执行,提示output单词错了;
第三次失败,因为第6、7两行中的汉语,和第11、12行顺序反了。
(原来有一个误解:输入后颜色和作业中的原码一样,应该就没事,不对。要仔细检查,严格按照格式走)
作业如下