说实话,小编遇到过让人捉鸡的情况。某次运行一个程序,run一次输入数字,run一次输入数字,唉,有点烦,有点累。能不能让程序自动存储数据呢?
当然可以!
#!/usr/bin/env python
# -*- coding:utf-8 -*-
存储用户输入
一个队用户友好的程序,需要保存用户的输入。可以使用json模块存储数据。
两个函数
json.dump()写数据
json.load()读数据
写文件
import json
system = {'administrator':'Lisa','program':'David','user':'Ada','user':'Gia'}
file = 'system.JSON'
with open(file,'w') as f:
json.dump(system,f)
读文件
import json
file = 'system.JSON'
with open(file) as f:
content = json.load(f)
print(content)
重构
重构指将代码划分成几个函数,要做哪些工作直接调用函数,使得代码风格简洁明了。
import json
def win():
'''print the winer of the game'''
try:
with open('win.json') as w:
content = json.load(w)
except FileNotFoundError:
print("Can't Found")
else:
print('The winner is'+content)
上期习题(猫和狗)
1、创建两个文件cats.txt和dogs.txt,各存储至少三只猫/狗的名字。编写一个程序,尝试读取这些文件,并将其内容打印到屏幕上。
2、将这些代码放在一个try-except 代码块中,以便在文件不存在时捕获FileNotFound 错误,并打印一条友好的消息。
3、将其中一个文件移到另一个地方,并确认except 代码块中的代码将正确地执行。修改程序让程序在文件不存在时一言不发。
参考答案(猫和狗)
def read_file(file):
try:
with open(file) as f:
content = f.read()
print(content)
except FileNotFoundError:
pass
#print('The file is not found.')
read_file('cat.txt')
read_file('dog.txt')
本期习题(喜欢的数字)
1、编写函数digital(),提示用户输入喜欢的数字,并用json.dump() 存储到文件中。
2、再编写函数read_digital(),从文件中读取这个值,并打印消息“I know your favorite number! It's _____.”。
3、将两个函数合二为一,如果存储了该数字就显示;否则提示用户输入他喜欢的数字。运行两次观察它是否正常工作。
作者:forever18,理性工科女,努力自学PYTHON,致力于免费学习、自主学习。如有侵权请联系公众号苍穹誓言删除。
领取专属 10元无门槛券
私享最新 技术干货