原碼省略捌臊,主要目的是搞清楚每一行代碼的意思及格式。
執(zhí)行了兩遍兜材,第一遍是實(shí)驗(yàn)一下標(biāo)點(diǎn)在中英文輸入下有沒有影響理澎。答案是,有曙寡。
每一行的注釋放在 # 后面糠爬,不影響執(zhí)行。
第一遍
但是第二遍举庶,把注釋去掉后执隧,執(zhí)行不了,有一行的錯(cuò)誤無(wú)法糾正。
今天查到了好幾個(gè)實(shí)用的語(yǔ)法解釋
python中的for i in range
for循環(huán)語(yǔ)句是Python中的一個(gè)循環(huán)控制語(yǔ)句殴玛,任何有序的序列對(duì)象內(nèi)的元素都可以遍歷捅膘,比如字符串、列表滚粟、元組等可迭代對(duì)象寻仗。for循環(huán)的一般格式:第一行是要先定義一個(gè)賦值目標(biāo)(迭代變量),和要遍歷(迭代)的對(duì)像凡壤;首行后面是要執(zhí)行的語(yǔ)句塊署尤。
?for目標(biāo) in對(duì)像:
? ? ? ? ? ? ? print賦值目標(biāo)
Python2.x中range()函數(shù)會(huì)返回一個(gè)列表,返回的對(duì)象便可以用for循環(huán)進(jìn)行遍歷亚侠。下面的例子中曹体,for循環(huán)對(duì)range()返回的列表進(jìn)行遍歷并打印。
for i in range(1,5):
print i,
#?1?2?3?4
還有一個(gè)例子 ? ? ?第一個(gè)是開始值硝烂,第二個(gè)結(jié)束值箕别,第三個(gè)是步長(zhǎng),默認(rèn)為1滞谢,比如:
1 >>>for i in range(3,13,3):
2? print i
...
3
6
9
12
>>>
Python中用datetime包進(jìn)行對(duì)時(shí)間的一些操作
A. 計(jì)算給出兩個(gè)時(shí)間之間的時(shí)間差
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天前的時(shí)間
1. cur_time=dt.now()
2. # previous n days
3. pre_time=dt.timedelta(days=n)
C. 將給定的時(shí)間精確到天或者其他單位
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 獲取一連串的時(shí)間序列(返回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. 將時(shí)間字符串轉(zhuǎn)化為datetime類型
1. date_formate="%Y-%m-%d"# year-month-day
2. time=dt.strptime('2016-06-22', date_format)
F. 將時(shí)間類型轉(zhuǎn)化為字符串類型
1. time_str=dt.strftime("%Y-%m-%d", dt.now())# return like "2016-06-22"
Python基礎(chǔ)篇之初識(shí)Python必看攻略
一串稀、解釋器
1. 如果想要類似于執(zhí)行shell腳本一樣執(zhí)行python腳本,例: ./hello.py 狮杨,那么就需要在 hello.py 文件的頭部指定解釋器母截,如下:
1 #!/usr/bin/env python
2
3 ?print"hello,world"
ps:執(zhí)行前需給予 hello.py 執(zhí)行權(quán)限,chmod 755 hello.py
二橄教、內(nèi)容編碼
python解釋器在加載 .py 文件中的代碼時(shí)清寇,會(huì)對(duì)內(nèi)容進(jìn)行編碼(默認(rèn)ascill)
ASCII(American Standard Code for Information Interchange,美國(guó)標(biāo)準(zhǔn)信息交換代碼)是基于拉丁字母的一套電腦編碼系統(tǒng)护蝶,主要用于顯示現(xiàn)代英語(yǔ)和其他西歐語(yǔ)言华烟,其最多只能用 8 位來(lái)表示(一個(gè)字節(jié)),即:2**8 = 256滓走,所以垦江,ASCII碼最多只能表示 256 個(gè)符號(hào)搅方。
UTF-8绽族,是對(duì)Unicode編碼的壓縮和優(yōu)化,他不再使用最少使用2個(gè)字節(jié)吧慢,而是將所有的字符和符號(hào)進(jìn)行分類:ascii碼中的內(nèi)容用1個(gè)字節(jié)保存、歐洲的字符用2個(gè)字節(jié)保存,東亞的字符用3個(gè)字節(jié)保存...
所以匈仗,python解釋器在加載 .py 文件中的代碼時(shí),會(huì)對(duì)內(nèi)容進(jìn)行編碼(默認(rèn)ascill)悠轩,如果是如下代碼的話:
報(bào)錯(cuò):ascii碼無(wú)法表示中文
1
2
3
4
5#!/usr/bin/env python
print"你好间狂,世界"
改正:應(yīng)該顯示的告訴python解釋器火架,用什么編碼來(lái)執(zhí)行源代碼,即:
1
2
3
4
5
6
7#!/usr/bin/env python
# -*- coding: utf-8 -*-
print"你好何鸡,世界"