Python Day130-147

DAY 130 2017.10.11
10.4.1 使用json.dump()和json.load()
使用json.dump()來編寫一個存儲一組數字的簡短程序,再使用json.load()編寫一個將這些數字讀取到內存中的程序蠢莺。
函數json.dump()接受兩個實參:要存儲的數據以及可用于存儲數據的文件對象于样。


DAY 131 2017.10.12
10.4.2 保存和讀取用戶生成的數據
對于用戶生成的數據,使用json保存它們大有裨益趟畏,因為如果不以某種方式進行存儲靶橱,等程序停止運行時用戶的信息將丟失臊旭。例子:用戶首次運行程序時被提示輸入自己的名字狸页,這樣再次運行程序時就記住他了。
存儲用戶的名字:

向名字被存儲的用戶發(fā)出問候:



DAY 132 2017.10.13
我們需要合并上面的兩個程序扯再。這個程序運行時芍耘,我們將從文件username.json中獲取用戶名,因此我們首先編寫一個嘗試恢復用戶名的try代碼塊熄阻。如果這個文件不存在斋竞,我們就在except代碼塊中提示輸入用戶名,并將其存儲在username.json中秃殉,以便程序再次運行時能夠獲取它坝初。


DAY 133 2017.10.14
10.4.3 重構
將代碼分為一系列完成具體工作的函數,這樣的過程被稱為重構钾军。重構讓代碼更清晰鳄袍、更易于理解、更容易擴展吏恭。

# Hello World program in Python
# --coding: utf-8 --
import json
def get_stored_username():
    filename='username.json'
    try:
        with open(filename) as f:
            username=json.load(f)
    except FileNotFoundError:
        return None
    else:
        return username
def greet_user():
    username=get_stored_username()
    if username:
        print("Welcome back, "+username+" !")
    else:
        username=raw_input("What's your name?")
        filename='username.json'
        with open(filename,'w') as f:
            json.dump(username,f)
            print("We will remember you when you come back, "+username+" !")
greet_user()

DAY 135 2017.10.15


DAY 136 2017.10.16

# Hello World program in Python
# --coding: utf-8 --
import json
def get_stored_username():
    """如果存儲了用戶名拗小,就獲取它"""
    filename='username.json'
    try:
        with open(filename) as f:
            username=json.load(f)
    except IOError:
        return None
    else:
        return username
def get_new_username():
    username=raw_input("What's your name?")
    filename='username.json'
    with open(filename,'w') as f:
        json.dump(username,f)
    return username
def greet_user():
    """問候用戶名,并指出其名字"""
    username=get_stored_username()
    if username:
        print("Welcome back, "+username+" !")
    else:
        username=get_new_username()
        print("We will remember you when you come back, "+username+" !")
greet_user()

DAY 137 2017.10.17
學習使用Markdown


獻給寫作者的 Markdown 新手指南

在群里看到戰(zhàn)友推薦使用Markdown編輯文本樱哼,本來犯懶不想動哀九,看到大家都開始使用剿配,打起精神來把原先編輯好的文章重新又用Markdown編輯了一下,果然清晰多了阅束,大贊呼胚!戰(zhàn)友們的學習態(tài)度給了自己很大的動力!


DAY 138-139 2017.10.18--2017.10.19
安裝Python和Pycharm
Pycharm及python安裝詳細教程
python下載地址:https://www.python.org/downloads/

pycharm下載地址:http://www.jetbrains.com/pycharm/download/#section=windows


DAY 140 2017.10.20
10.1 從文件中讀取數據
"文本文件可存儲的數據量多得難以置信:天氣數據息裸、交通數據蝇更、社會經濟數據、文學作品等界牡。每當需要分析或修改存儲在文件中的信息時,讀取文件都很有用,對數據分析應用
程序來說尤其如此簿寂。例如,你可以編寫一個這樣的程序:讀取一個文本文件的內容,重新設置這些數據的格式并將其寫入文件,讓瀏覽器能夠顯示這些內容。
要使用文本文件中的信息,首先需要將信息讀取到內存中宿亡。為此,你可以一次性讀取文件的全部內容,也可以以每次一行的方式逐步讀取"
簡要說常遂,數據很重要,存儲很重要挽荠,讀取使用全靠文件操作.

在這個程序中,第1行代碼做了大量的工作克胳。我們先來看看函數open() 。要以任何方式使用文件——哪怕僅僅是打印其內容,都得先打開 文件,這樣才能訪問它圈匆。函數open() 接受一個參數:要打開的文件的名稱漠另。Python在當前執(zhí)行的文件所在的目錄中查找指定的文件。在這個示例中,當前運行的是file_reader.py,因此Python在file_reader.py所在的目錄中 查找pi_digits.txt跃赚。函數open() 返回一個表示文件的對象笆搓。在這里,open('pi_digits.txt') 返回一個表示文件pi_digits.txt 的對象;Python將這個對象存儲在我們將 在后面使用的變量中。

關鍵字with 在不再需要訪問文件后將其關閉纬傲。
在這個程序中,注意到我們調用了open() ,但沒有調用close() ;你也可以調用open() 和close() 來打開和關閉文件,但 這樣做時,如果程序存在bug,導致close() 語句未執(zhí)行,文件將不會關閉满败。這看似微不足道,但未妥善地關閉文件可能會導致數據丟失或受損。如果在程序中過早地調 用close() ,你會發(fā)現需要使用文件時它已關閉 (無法訪問),這會導致更多的錯誤叹括。并非在任何情況下都能輕松確定關閉文件的恰當時機,但通過使用前面所示的結構,可 讓Python去確定:你只管打開文件,并在需要時使用它,Python自會在合適的時候自動將其關閉算墨。


DAY 141 2017.10.21
課后作業(yè)10-11:喜歡的數字
編寫一個程序,提示用戶輸入他喜歡的數字汁雷,并使用 json.dump()將這個數字存儲到文件中净嘀。再編寫一個程序,從文件中讀取這個值侠讯,并打 印消息“I know your favorite number! It’s _.”挖藏。
課后作業(yè)10-12 記住喜歡的數字
將練習 10-11 中的兩個程序合而為一。如果存儲了用戶喜 歡的數字厢漩,就向用戶顯示它熬苍,否則提示用戶輸入他喜歡的數字并將其存儲到文件中。運 行這個程序兩次,看看它是否像預期的那樣工作柴底。

# Hello World program in Python
# --coding: utf-8 --
import json
string="please enter your favorite number: "
Number=input(string.title())
filename='Favorite_number.json'
with open(filename,'w') as f_obj:
    json.dump(int(Number),f_obj)
with open(filename) as f_obj:
    User_number=json.load(f_obj)
    print("I know your favorite number is "+str(User_number))

DAY 142 2017.10.22
10.1.2 文件路徑
當你將類似pi_digits.txt這樣的簡單文件名傳遞給函數open() 時,Python將在當前執(zhí)行的文件(即.py程序文件)所在的目錄中查找文件婿脸。
根據你組織文件的方式,有時可能要打開不在程序文件所屬目錄中的文件。例如,你可能將程序文件存儲在了文件夾python_work中,而在文件夾python_work中,有一個名為 text_files的文件夾,用于存儲程序文件操作的文本文件柄驻。雖然文件夾text_files包含在文件夾python_work中,但僅向open() 傳遞位于該文件夾中的文件的名稱也不可行,因為Python 只在文件夾python_work中查找,而不會在其子文件夾text_files中查找狐树。要讓Python打開不與程序文件位于同一個目錄中的文件,需要提供文件路徑 ,它讓Python到系統(tǒng)的特定位置 去查找。
由于文件夾text_files位于文件夾python_work中,因此可使用相對文件路 徑來打開該文件夾中的文件鸿脓。相對文件路徑讓Python到指定的位置去查找,而該位置是相對于當前運行的程 序所在目錄的

file_path = './main.py' 
with open(file_path) as file_object:
    print file_object.read()

DAY 143-144 2017.10.23--2017.10.24
課后作業(yè)10-13 驗證用戶:最后一個 remember_me.py 版本
假設用戶要么已輸入其用戶名抑钟,要么是首次運行該程序。我們應修改這個程序野哭,以應對這樣的情形:當前和最后一次運行 該程序的用戶并非同一個人在塔。 為此,在 greet_user()中打印歡迎用戶回來的消息前拨黔,先詢問他用戶名是否是對的蛔溃。 如果不對,就調用 get_new_username()讓用戶輸入正確的用戶名篱蝇。

# Hello World program in Python
# --coding: utf-8 --
import json
message='no message!'
def new_user():
    NameJudge=raw_input('Please Enter Your Name :')
    filename=NameJudge+'.json'
    with open(filename,'w') as f_obj:
         json.dump(NameJudge,f_obj)

def greet_user():
    NameJudge=raw_input('Please Enter Your Load Name :')
    filename=NameJudge+'.json'

    try:
        with open(filename) as f_obj:
            User=json.load(f_obj)
    except FileNotFoundError:
        print(message)
    else: 
        print('Welcome home, '+User) 

judgment=raw_input("Do you have the Accounts ?  Y/N\n")
if judgment.title()=='Y':
    greet_user()
if judgment.title()=='N':
    new_user()

DAY 145—146 2017.10.25—2017.10.26
在外旅游贺待,偷懶中...
json模塊使用總結——Python


DAY 147 2017.10.27
10.1.3 逐行讀取-黑客讀取服務器密碼文件例子
使用關鍵字with 時,open() 返回的文件對象只在with 代碼塊內可用。如果要在with 代碼塊外訪問文件的內容,可在with 代碼塊內將文件的各行存儲在一個列表中,并
在with 代碼塊外使用該列表:你可以立即處理文件的各個部分,也可推遲到程序后面再處理零截。 下面的示例在with 代碼塊中將文件pi_digits.txt的各行存儲在一個列表中,再在with 代碼塊外打印它們:

filename = '/etc/passwd'
with open(filename) as file_object: 
    for line in file_object:
        print(line)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末麸塞,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子涧衙,更是在濱河造成了極大的恐慌哪工,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雁比,死亡現場離奇詭異,居然都是意外死亡章贞,警方通過查閱死者的電腦和手機非洲,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜕径,“玉大人两踏,你說我怎么就攤上這事兜喻。” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵帕识,是天一觀的道長泛粹。 經常有香客問我涣达,道長,這世上最難降的妖魔是什么崩瓤? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮碱呼,結果婚禮上,老公的妹妹穿的比我還像新娘忆蚀。我一直安慰自己,他們只是感情好蜓谋,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布桃焕。 她就那樣靜靜地躺著捧毛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呀忧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天胰坟,我揣著相機與錄音泞辐,去河邊找鬼。 笑死吹缔,一個胖子當著我的面吹牛,可吹牛的內容都是我干的锯茄。 我是一名探鬼主播茶没,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抓半,長吁一口氣:“原來是場噩夢啊……” “哼格嘁!你這毒婦竟也來了?” 一聲冷哼從身側響起讥蔽,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冶伞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后响禽,有當地人在樹林里發(fā)現了一具尸體芋类,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年胖喳,在試婚紗的時候發(fā)現自己被綠了贮竟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡技健,死狀恐怖惰拱,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情欣孤,我是刑警寧澤翔冀,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布披泪,位于F島的核電站,受9級特大地震影響控硼,放射性物質發(fā)生泄漏。R本人自食惡果不足惜翼悴,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一幔妨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧古话,春花似錦锁施、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至列粪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間篱竭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工吃媒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吕喘,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓氯质,卻偏偏與公主長得像闻察,于是被迫代替她去往敵國和親琢锋。 傳聞我的和親對象是個殘疾皇子呢灶,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容