零基础学习Python作业本复盘(1-2)
原码省略,主要目的是搞清楚每一行代码的意思及格式。
执行了两遍,第一遍是实验一下标点在中英文输入下有没有影响。答案是,有。
每一行的注释放在 # 后面,不影响执行。
第一遍
但是第二遍,把注释去掉后,执行不了,有一行的错误无法纠正。
今天查到了好几个实用的语法解释
python中的for i in range
for循环语句是Python中的一个循环控制语句,任何有序的序列对象内的元素都可以遍历,比如字符串、列表、元组等可迭代对象。for循环的一般格式:第一行是要先定义一个赋值目标(迭代变量),和要遍历(迭代)的对像;首行后面是要执行的语句块。
for目标 in对像:
print赋值目标
Python2.x中range()函数会返回一个列表,返回的对象便可以用for循环进行遍历。下面的例子中,for循环对range()返回的列表进行遍历并打印。
for i in range(1,5):
print i,
# 1 2 3 4
还有一个例子 第一个是开始值,第二个结束值,第三个是步长,默认为1,比如:
1 >>>for i in range(3,13,3):
2 print i
...
3
6
9
12
>>>
Python中用datetime包进行对时间的一些操作
A. 计算给出两个时间之间的时间差
1. importdatetime as dt
2.# current time
3.cur_time=dt.datetime.today()
4.# one day
5.pre_time=dt.date(2016,5,20)# eg: 2016.5.20
6.delta=cur_time-pre_time
7.# if you want to get discrepancy in days
8.printdelta.days
9.# if you want to get discrepancy in hours
10.printdelta.hours
11.# and so on
B. 获取n天前的时间
1. cur_time=dt.now()
2. # previous n days
3. pre_time=dt.timedelta(days=n)
C. 将给定的时间精确到天或者其他单位
1. cur_time=dt.now()
2. # get day of current time
3. cur_day=cur_time.replace(hour=0, minute=0, second=0, mircrosecond=0)
D 获取一连串的时间序列(返回list)
1.cur_time=dt.datetime.today()
2. datelist=[cur_time-dt.timedelta(days=x)forxinrange(0,100)]
或者
1.import pandas as pd
2. datelist=pd.date_range(pd.datetime.today(), periods=100).tolist()
E. 将时间字符串转化为datetime类型
1. date_formate="%Y-%m-%d"# year-month-day
2. time=dt.strptime('2016-06-22', date_format)
F. 将时间类型转化为字符串类型
1. time_str=dt.strftime("%Y-%m-%d", dt.now())# return like "2016-06-22"
Python基础篇之初识Python必看攻略
一、解释器
1. 如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:
1 #!/usr/bin/env python
2
3 print"hello,world"
ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py
二、内容编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
1
2
3
4
5#!/usr/bin/env python
print"你好,世界"
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
1
2
3
4
5
6
7#!/usr/bin/env python
# -*- coding: utf-8 -*-
print"你好,世界"