Python核心程式設計 第三版 練習

2021-08-26 08:27:15 字數 2597 閱讀 4623

目錄

1.6 練習

1-16

1-17

1-16 為gendata.py更新**,使資料直接輸出一redata.txtm而不是螢幕。

#!/user/bin/env python

from random import randrange, choice

from string import ascii_lowercase as lc

from time import ctime, mktime

def gendata():

tlds = ('com', 'edu', 'net', 'org', 'gov')

f = open('redata.txt', 'w+')

for i in range(randrange(5,11)):

dtint = randrange(mktime((2038,1,18,0,0,0,0,0,0)))

dtstr = ctime(dtint)

llen = randrange(4, 8)

login = ''.join(choice(lc) for j in range(llen))

dlen = randrange(llen, 13)

dom = ''.join(choice(lc) for j in range(dlen))

print('%s::%s@%s.%s::%d-%d-%d' % (dtstr, login, dom, choice(tlds), dtint, llen, dlen))

f.write('%s::%s@%s.%s::%d-%d-%d\n' % (dtstr, login, dom, choice(tlds), dtint, llen, dlen))

f.close()

1-17 判斷在redata.txt中一周的每一天出現的次數(換句話說,讀者也可以計算所選擇的年份中每個月中出現的次數)

def main():

gendata()

patt = r'[a-za-z]'

f = open("redata.txt", 'r')

weeks = {}

for line in f:

m = re.match(patt, line)

if m is not none:

weeks[m.group()] = weeks.get(m.group(),0) + 1

print(weeks)

1-18 通過確認整數欄位中的第乙個整數匹配在每個輸出行起始部分的時間戳,確保在redata.txt中沒有資料損壞。

patt = r'([\w :]+)::[\w@\.]+::(\d+)-'

with open("redata.txt", 'r') as f:

for line in f:

m = re.search(patt, line)

if m is not none:

print(m.group(1), m.group(2))

if ctime(int(m.group(2))) == m.group(1):

print(true)

else:

print(false)

1-29 支援使用圓括號或連字元連線的區號,使用正規表示式匹配800-555-1212、555-1212以及(800)555-1212

((\()?\d(?(2)\)|-))?\d-\d
1-30 生成html。

提供乙個鏈結列表(以及可選的簡短描述),無論使用者通過命令列方式提供、通過來自其他指令碼的輸入,還是來自於資料庫,都生成乙個web頁面(.html),該頁面包含作為超文字錨點的所以鏈結,它可以在web瀏覽器中檢視,允許使用者單擊這些鏈結,然後訪問相應的站點。如果提供了簡短的描述,就使用該描述作為超文字而不是url。

UnixShell程式設計 第三版

這本書相當老了,04年的,現在 在linux上做實驗。1,date 顯示日期。2,who 顯示使用者,who am i 3,echo 後面字串會全部輸出,會過濾掉多餘空格,單雙引號,分號等。4,ls 列出檔案。5,cat 檢視檔案。6,wc 檔名,第乙個數字是檔案行數,第二個數字是檔案單詞書,第三個...

Javascript高階程式設計(第三版) 陣列

var colors red blue green colors.length 2 alert colors 2 undifined陣列的length屬性不是唯讀的。如果將其length的值設為大於陣列項數的值,則新增的每一項都會取得undefined值。可以方便的在陣列末尾新增新項,比如 colo...

編譯apue 第三版

想要直接使用作者提供的源 就需要編譯下,這個檔名是src.3e.tar.gz 很簡單的幾步就搞定了.解壓src.3e.tar.gz 進入apue.3e make 進入apue.3e lib目錄,複製libapue.a到 usr local lib目錄 進入 apue.3e include目錄,複製 ...