78衡招、存儲數(shù)據(jù)課后習題

10-11喜歡的數(shù)字 :編寫一個程序二驰,提示用戶輸入他喜歡的數(shù)字瑞妇,并使用json.dump() 將這個數(shù)字存儲到文件中稿静。

# -*- coding: utf-8 -*-
import  json

# 存儲用戶喜歡的數(shù)字
filename = "number.json"
number = raw_input("What is your favorite number: ")
with open(filename,"w") as f_obj:
    json.dump(number,f_obj)

print("Write success!")

結果:

What is your favorite number: 23
Write success!

Process finished with exit code 0

再編寫一個程序,從文件中讀取這個值辕狰,并打印消息“I know your favorite number! It's _____.”改备。

# -*- coding: utf-8 -*-
import  json

# 讀取用戶喜歡的數(shù)字
filename = "number.json"
with open(filename) as f_obj:
    number = json.load(f_obj)
print("I know your favorite number!It's " + number + ".")

結果:

I know your favorite number!It's 23.

Process finished with exit code 0

10-12記住喜歡的數(shù)字 :將練習10-11中的兩個程序合而為一。如果存儲了用戶喜歡的數(shù)字柳琢,就向用戶顯示它绍妨,否則提示用戶輸入他喜歡的數(shù)字并將其存儲到文件中。
運行這個程序兩次柬脸,看看它是否像預期的那樣工作。
方法一:

# -*- coding: utf-8 -*-
import  json
# 如果以前存儲有數(shù)字毙驯,就讀取它
# 否則倒堕,提示用戶輸入它喜歡的數(shù)字并存儲
filename = "number.json"
try:
    with open(filename) as f_obj:
        number = json.load(f_obj)
except IOError:
    number = raw_input("What is your favorite number: ")
    with open(filename,"w") as f_obj:
        json.dump(number,f_obj)
else:
    print("I know your favorite number!It's " + number + ".")

第一次運行結果:

What is your favorite number: 2323

Process finished with exit code 0

第二次運行結果:

I know your favorite number!It's 2323.

Process finished with exit code 0

方法二:

# -*- coding: utf-8 -*-
import  json
def get_number():
    """如果存儲了數(shù)字,獲取它"""
    filename = "number.json"
    try:
        with open(filename) as f_obj:
            number = json.load(f_obj)
    except IOError:
        return None
    else:
        return number

def write_number():
    """提示用戶輸入喜歡的數(shù)字"""
    filename = "number.json"
    number = raw_input("What is your favorite number: ")
    with open(filename,"w") as f_obj:
        json.dump(number,f_obj)
        return number

def print_number():
    """打印用戶喜歡的數(shù)字"""
    number = get_number()
    if number:
        print("I know your favorite number!It's " + number + ".")
    else:
        number = write_number()
        print("I'll keep in mind that your favorite number is " + number)

print_number()

第一次運行結果:

What is your favorite number: 2323
I'll keep in mind that your favorite number is 2323

Process finished with exit code 0

第二次運行結果:

I know your favorite number!It's 2323.

Process finished with exit code 0

10-13驗證用戶 :最后一個remember_me.py版本假設用戶要么已輸入其用戶名爆价,要么是首次運行該程序垦巴。我們應修改這個程序,以應對這樣的情形:當前和最后一次運行該程序的用戶并非同一個人铭段。
為此骤宣,在greet_user() 中打印歡迎用戶回來的消息前,先詢問他用戶名是否是對的序愚。如果不對憔披,就調(diào)用get_new_username() 讓用戶輸入正確的用戶名。
代碼如下:

# -*- coding: utf-8 -*-
import json
def get_stored_username():
    """如果存儲了用戶名爸吮,就獲取它"""
    filename = "username.json"
    try:
        with open(filename) as f_obj:
            username = json.load(f_obj)
    except IOError:
        return None
    else:
        return username
def get_new_username():
    """提示用戶輸入用戶名"""
    username = raw_input("What is your name: ")
    filename = "username.json"
    with open(filename,'w') as f_obj:
        json.dump(username,f_obj)
        return  username
def greet_user():
    """問候用戶芬膝,并指出其名字"""
    username = get_stored_username()
    if username:
        self_name = raw_input(username + " is your name?(yes/ no)\n ")
        if self_name == "yes":
            print("Welcome back, " + username + "!")
        else:
            username = get_new_username()
            print("I'll remember you when you come back, " + username + "!")
    else:
        username = get_new_username()
        print("I'll remember you when you come back, " + username + "!")

greet_user()

驗證代碼:

What is your name: leilei
I'll remember you when you come back, leilei!

Process finished with exit code 0
leilei is your name?(yes/ no)
 no
What is your name: 23
I'll remember you when you come back, 23!

Process finished with exit code 0
23 is your name?(yes/ no)
 yes
Welcome back, 23!

Process finished with exit code 0
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市形娇,隨后出現(xiàn)的幾起案子锰霜,更是在濱河造成了極大的恐慌,老刑警劉巖桐早,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癣缅,死亡現(xiàn)場離奇詭異,居然都是意外死亡哄酝,警方通過查閱死者的電腦和手機友存,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炫七,“玉大人爬立,你說我怎么就攤上這事⊥蚰模” “怎么了侠驯?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵抡秆,是天一觀的道長。 經(jīng)常有香客問我吟策,道長儒士,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任檩坚,我火速辦了婚禮着撩,結果婚禮上,老公的妹妹穿的比我還像新娘匾委。我一直安慰自己拖叙,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布赂乐。 她就那樣靜靜地躺著薯鳍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挨措。 梳的紋絲不亂的頭發(fā)上挖滤,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音浅役,去河邊找鬼斩松。 笑死,一個胖子當著我的面吹牛觉既,可吹牛的內(nèi)容都是我干的惧盹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼奋救,長吁一口氣:“原來是場噩夢啊……” “哼岭参!你這毒婦竟也來了?” 一聲冷哼從身側響起尝艘,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤演侯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后背亥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秒际,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年狡汉,在試婚紗的時候發(fā)現(xiàn)自己被綠了娄徊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡盾戴,死狀恐怖寄锐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤橄仆,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布剩膘,位于F島的核電站,受9級特大地震影響盆顾,放射性物質(zhì)發(fā)生泄漏怠褐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一您宪、第九天 我趴在偏房一處隱蔽的房頂上張望奈懒。 院中可真熱鬧,春花似錦宪巨、人聲如沸磷杏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茴丰。三九已至,卻和暖如春天吓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峦椰。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工龄寞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汤功。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓物邑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親滔金。 傳聞我的和親對象是個殘疾皇子色解,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)餐茵,斷路器科阎,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • Ubuntu的發(fā)音 Ubuntu道批,源于非洲祖魯人和科薩人的語言错英,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,204評論 9 467
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,146評論 2 34
  • 昨天傍晚的一場急雨判哥,把這座小城和朋友圈沖刷了一遍献雅。雨來得急走得也快走,到了下班的時間姨伟,夕陽不甘寂寞地撥開了烏云惩琉,紅...
    齊魯說法閱讀 229評論 0 0
  • 王姐身體不舒服,老李帶她去看病夺荒,說要開刀瞒渠。我在想,未來的哪天技扼,我生病了伍玖,誰來照顧我呢?我想有個家~~在找到家之前剿吻,...
    遇見繁花閱讀 183評論 0 0