第三章练习题及答案
Posted cnlogs1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三章练习题及答案相关的知识,希望对你有一定的参考价值。
1.编码问题
请说明python2 与python3中的默认编码是什么?
# 答案 py2默认ASCII码,py3默认的utf8
为什么会出现中文乱码?你能列举出现乱码的情况有哪几种?
# 答案 #coding:utf-8 #.py文件是什么编码就需要告诉python用什么编码去读取这个.py文件。 sys.stdout.encoding,默认就是locale的编码,print会用sys.stdout.encoding去encode()成字节流,交给terminal显示。所以locale需要与terminal一致,才能正确print打印出中文。 sys.setdefaultencoding(‘utf8’),用于指定str.encode() str.decode()的默认编码,默认是ascii。 以下几种(local 为软件运行时的语言环境): 终端为UTF-8,locale为zh_CN.GBK 终端为UTF-8,locale为zh_CN.UTF-8 终端为GBK,locale为zh_CN.GBK 终端为GBK,locale为zh_CN.UTF-8
2.如何进行编码转换?
# 答案 字符串在python内部中是采用unicode的编码方式,所以其他语言先decode转换成unicode编码
#-*-coding:utf-8-*- 的作用是什么?
编码声明
3.解释py2 bytes vs py3 bytes的区别
# 答案 Python 2 将 strings 处理为原生的 bytes 类型,而不是 unicode(python2 str == bytes), Python 3 所有的 strings 均是 unicode 类型(python3 中需要通过 unicode ) string -> encode -> bytes bytes -> decode -> string
4.文件处理
r和rb的区别是什么?
# 答案 r 读模式 rb 二进制读
解释一下以下三个参数的分别作用
# 答案 open(f_name,‘r‘,encoding="utf-8") f_name 文件名 r 模式 encoding 编码方式
5.函数基础:
写函数,计算传入数字参数的和。(动态传参)
# 答案 def func_sum(x, y): return x + y 或 lambda x , y : x +y
写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作
# 答案 # 修改列表中字符串首字母大写 def file_daxie(file): a=[] for i in file: b=i.capitalize() a.append(b) print(a)
写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
# 答案 def file_k(file): n=0 for i in file: if i==‘ ‘: n+=1 print(‘有%s个空‘%n)
写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]} PS:字典中的value只能是字符串或列表 #答案 def func(i): # i为所传字典 for k, v in i.items(): if len(v) > 2: dic[k]= v[:2] else: continue return i print(func(dic)) {‘k1‘: ‘v1‘, ‘k2‘: [11, 22]}
解释闭包的概念
闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。
在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability)。
闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。
以上是关于第三章练习题及答案的主要内容,如果未能解决你的问题,请参考以下文章
R语言基础题及答案——R语言与统计分析第三章课后习题(汤银才)