# 转码之间必须先转回至Unicode,在python2.X中默认是ASCII编码,在Python3中默认就是unicode编码
# 编码详解两篇文章:http://www.cnblogs.com/luotianshuai/articles/5735051.html
# http://www.cnblogs.com/yuanchenqi/articles/5956943.html
import sys
print(sys.getdefaultencoding())
s='我爱北京'
print(s)
print(s.encode()) #utf-8 编码
s_gbk =s.encode(encoding='gbk') #utf-8转换为gbk
print(s_gbk)
gbk_utf =s_gbk.decode(encoding='gbk').encode(encoding='utf-8') #gbk转换为utf-8
print(gbk_utf)
print(gbk_utf.decode(encoding='utf-8')) #将utf-8解码
# #-*- coding:utf-8 -*-
#
# tim = '天帅'
# #转为UTF-8编码
# print(tim.encode('UTF-8'))
# #转为GBK编码
# print(tim.encode('GBK'))
# #转为ASCII编码(报错为什么?因为ASCII码表中没有‘天帅’这个字符集~~)
# print(tim.encode('ASCII'))
while True:
a = input("FN:")
if a=='q':
break
b = input("SN:")
if b=='q':
break
# 处理异常方式,有时候用pass处理异常
try:
answer=int(a)/int(b)
except ZeroDivisionError:
print('不能除以0')
else:
print(answer)
import json
Nums = [1,7,8,1,10,6]
f_name = '_list.json' #一般文件存储都用JSON格式
with open(f_name,'w') as f:
json.dump(Nums,f) #存储数据
with open(f_name) as f:
nums = json.load(f) #读取数据
print(nums)
# 如果以前存储了用户名,就加载它;否则,就提示用户输入用户名并且进行存储
f_name = 'username.json'
try:
with open(f_name) as f:
username = json.load(f)
except FileNotFoundError:
username = input("please input your username:")
with open(f_name,'w') as f:
json.dump(username,f)
print("We'll remember you when you come back"+"username"+"!")
else:
print("Welcome back,"+username+"!")
# 重构
def get_stored_username():
'''如果存储了用户名,就直接获取它'''
f_name = 'username1.json'
try:
with open(f_name) as f:
username = json.load(f)
except FileNotFoundError:
return None
else:
return username
def get_new_username():
'''提示用户输入用户名'''
f_name = 'username1.json'
username = input("please input your username:")
with open(f_name, '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'll remember you when you come back" + "username" + "!")
greet_user()