发布于2019-08-22 16:57 阅读(1056) 评论(0) 点赞(13) 收藏(0)
【面试题目来着微信公众号:GitChat】
a,b = b,a
# 在json的__init__.py文件中,能看到以下自定义数据类型的
Specializing JSON object encoding::
>>> import json
>>> def encode_complex(obj):
... if isinstance(obj, complex):
... return [obj.real, obj.imag]
... raise TypeError(f'Object of type {obj.__class__.__name__} '
... f'is not JSON serializable')
...
>>> json.dumps(2 + 1j, default=encode_complex)
'[2.0, 1.0]'
>>> json.JSONEncoder(default=encode_complex).encode(2 + 1j)
'[2.0, 1.0]'
>>> ''.join(json.JSONEncoder(default=encode_complex).iterencode(2 + 1j))
'[2.0, 1.0]'
# 根据这个demo,我们自定义一个encode_datetime方法,处理datetime.datetime()类
def test27():
a = datetime.datetime.now()
print("%s %s" % (a, type(a)))
print(json.dumps(a, default=encode_datetime))
pass
def encode_datetime(obj):
if isinstance(obj, datetime.datetime):
return obj.strftime('%Y-%m-%d %H:%M:%S')
raise TypeError(f'Object of type {obj.__class__.__name__} '
f'is not JSON serializable')
test27()
def test28():
a = "诗和远方"
b = json.dumps(a, ensure_ascii=False)
print(b)
c = json.dumps(a)
print(c)
def test29():
with open("A", "r") as fa:
a = fa.read()
with open("B", "r") as fb:
b = fb.read()
c = a + b
d = sorted(c)
with open("C", "a") as fc:
fc.write("".join(d))
文件A和文件B
输出的文件C
54. 如果当前的日期为 20190530,要求写一个函数输出 N 天后的日期,(比如 N 为 2,则输出 20190601)。
import datetime
def test30(t="20190530", format="%Y%m%d"):
old_time = datetime.datetime.strptime(t, format)
add_day = datetime.timedelta(days=2)
new_time = old_time + add_day
result = new_time.strftime(format)
print(result)
return result
def test31(n: int):
# 参数不是int类型就抛异常
if not isinstance(n, int):
raise Exception("param n must be int.")
def main(*args):
# 题目没有交代清楚,里层函数可能有多个参数,多个或没有参数这返回列表
if len(args) == 1:
return args * n
else:
result = []
for i in args:
result.append(i * n)
return result
return main
def strappend(num):
# 可以考虑兼容字符串类型的数字等
if not isinstance(num, int):
raise Exception("param num must be int.")
st = 'first'
for i in range(num):
st += str(i)
return st
[i for i in range(1,101) if not i%2]
file
decimal.Context
thread.LockType
threading.Lock
threading.RLock
threading.Condition
threading.Semaphore
threading.BoundedSemaphore
当with语句开始执行时,获取上下文管理对象,自动调用魔术方法__enter__(),当with语句结束时,会自动调用魔术方法__exit__().自定义这两个方法,生成新的类,也可以用with语句.
比如open对文件的操作,with语句结束时,会自动调用open().close()方法,关闭文件.
with open("a", "r") as fp:
print(fp.read())
def test33():
a = {"a": 1, "b": 2}
b = json.dumps(a)
print(b, type(b))
c = json.loads(b)
print(c, type(c))
def test34(filename):
res_sum = 0
with open(filename, "r") as fp:
con = fp.read(10)
while con:
for i in con:
if i.isupper():
res_sum += 1
con = fp.read(10)
print(res_sum)
return res_sum
import pymongo
cli = pymongo.MongoClient("localhost",27017)
db = cli.mydatabase
data = db.user.find()
for d in data:
print(d)
说一说 Redis 的基本类型。
【基本类型】字符串,哈希(字典),列表,集合,有序集合
请写一段 Python连接 Redis 数据库的代码。
import redis
r = redis.Redis(
host='hostname',
port=port,
password='password')
value = r.get("key")
r.set("k1", "v1")
import pymysql
db = pymysql.connect(host='127.0.0.1', user='root', password='123456', charset='utf8', database='student')
link = db.cursor()
link.execute('show tables')
db.close()
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:
1.批量操作在发送 EXEC 命令前被放入队列缓存。
2.收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
3.在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
1.开始事务。
2.命令入队。
3.执行事务。
摘自菜鸟教程
第一范式1NF:原子性,每一列都只记录一种数据项,不可再拆分。
第二范式2NF:依赖于1NF,且每个非主属性完全函数依赖于候选键.一行只做一件事,消除非主属性对主码的部分函数依赖,减少冗余。
第三范式3NF:依赖于2NF,数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。
# 使用RedLock模块创建锁
import RedLock
rlock = RedLock([{"host": "localhost", "port": 6379, "db": 0}, ])
def run_with_redis_lock(name):
while True:
with rlock:
run()
import pymongo
mongo = pymongo.Connection('localhost')
collection = mongo['database']['user']
collection.ensure_index('user_name', unique=True)
面试题目来着微信公众号:GitChat
Python 爬虫面试题 170 道
以上答案皆为鄙人回答,如有问题,敬请诸君指出.
【python面试170题】系列
1. 语言特性
2. 编码规范
3. 数据类型-字符串
4. 数据类型-列表、字典
5. 数据类型-综合
6. 操作类题目
作者:熊猫烧香
链接:https://www.pythonheidong.com/blog/article/53106/2524d61e297f357bca33/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!
python经典书籍pdf下载(56)
python shell(0)
文件(0)
运行python脚本(0)
python(2)
人工智能(0)
python基础(0)
python高级(0)
IT编程电子书大合集(1)
linux(0)
bootstrap(0)
GUI编程tkinder(0)
python基础知识点(0)
ios(0)
java-2(0)