【python面试170题】6. 操作类题目

【面试题目来着微信公众号:GitChat】

操作类题目

  1. Python 交换两个变量的值
a,b = b,a
  1. 在读文件操作的时候会使用 read、readline 或者 readlines,简述它们各自的作用
    【read】一次读取文件所有的内容,返回str。如果给一个int参数n,则读n个字节的内容。
    【readline 】读取一行内容,返回str,指针+1;如果给一个int参数n,则读n个字节的内容,最多读一行。
    【readlines】一次读取文件所有的内容,返回list,每一行为一个元素。
    如果给一个int参数n,则读n个字节的内容。
  2. json 序列化时,可以处理的数据类型有哪些?如何定制支持 datetime 类型?
    【json序列化可以处理的数据类型】数字,字符串,元组,列表,字典,布尔值,None(注意集合是不支持的数据类型)
    【支持datetime】
    通过查看json.dumps()方法的函数注释,发现该方法有两个参数cls,defualt可以自定义处理数据类型
    在这里插入图片描述
# 在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-%
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值