路飞学城Python-Day16(第二模块考核总结)

## 第二模块
  3-5分钟总结第二模块学习内容
  
### 第一模块内容
1. 请写出 “路飞学城alex” 分别用 utf-8 和 gbk 编码所占的位数(口述)  
utf-8中中文字符占3个字节,英文字节占1个字节,每个字节为8位,所以bytes = (3*4+4*1)*8
gbk中文字符占2个字节,英文字符占1个字节,每个字节8位,所以bytes = (8+4)*8
 
2. python有哪几种数据类型,分别什么?哪些数据类型是有序的。    
基本数据类型:数字、字符串、布尔值
数据集:元祖、列表、字典、集合
有序数据类型:列表、元祖、字符串有序
 
3. 列表和字典的pop方法有什么区别。  
列表的pop()方法会固定删除最后一个元素
字典的pop()方法会随机删除key、value,也可以指定key删除value
 
###
1. read,readline,readlines的区别 (口述)
 
read() 每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中,也就是说 .read() 生成文件内容是一个字符串类型。
readline()每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中,返回str类型。
readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型。
 
 
2. 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码  
   
import json
 
 
def wapper(foo):
def inner(*args,**kwargs):
with open ('test.json','r',encoding='utf-8') as f:
user_info = json.load(f)
username = input('请输入用户名')
pwd = input('请输入密码')
if username == user_info['username'] and pwd ==user_info['pwd']:
print('登陆成功')
foo()
else:
print('登录失败')
return inner
 
 
3. 函数的参数(口述)
 
    - 形参和实参的区别。
实参:全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值
形参: 形参是函数被调用时用于接收实参值的变量
   
 
    - 位置参数,默认参数,关键参数,非固定参数的顺序。
位置参数>关键参数>默认参数>非固定参数
 
    - 解释下参数的作用。
动态传递,可以被函数调用进行流程控制运算
  
    - 什么数据类型可以做实参。
任何数据类型都可以做为实参
 
 
4. 解释一下是否会报错,原因是什么?要是不报错打印什么值?报错的可以怎么改就不报错? (口述)
 
      ```python
      def test():
        print(luffy)
      luffy = "the king of sea."
      test()
      ```
先找自己内部,找到了就打印the king of sea.
    
 
      ```python
      def test():
        print(luffy)
        luffy = 'e'
      test()
      luffy = "the king of sea."
      ```
代码一行一行执行,所以根本找不到luffy的值,直接就报错了,因为是先打印后定义参数
   
 
      ```python
      def test():
        luffy = 'e'
        print(luffy)
      test()
      luffy = "the king of sea."
      ```
先找自己,直接找到e,打印e,不再往外找了
   
 
5. li = [1,2,3,5,5,6,7,8,9,9,8,3] 利用生成器功能,写一个所有数值乘以2的功能。(编程)
li = [i*2 for i in li]
   
 
6. isinstance('s',str)  与  tupe('s') is str 效果是否一样?(口述)
作用是相同的,即效果一样,都是可以用来判断数据类型的,类似type()[但是和type有不同]
isinstance('s',str)返回True
tuple('s') is str返回False
   
 
7. 序列化-json,xml,pickle (口述)
      json和pickle的区别是什么?
json:返回的是所有的数据类型,不仅仅是python支持的
pickle:返回的仅仅是python支持的几个数据类型并且存储耗空间大
  
 
 
8. 描述写硬盘的编码转变(UTF-8格式,系统格式GBK) (口述)
先解码decode 为unicode再编码encode  为 'GBK'
 
9. 解释以下代码含义 (口述)
 
    ```python
    from functools import reduce
    reduce(lambda x,y:x+y,range(10))
    ```
reduce() 函数语法
reduce(function, iterable[, initializer])
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
所以结果是对range(10)内部求和为45,相当于0+1+2+3+4+5+6+7+8+9
 
 
10. 打印日志11/26/2017 10:44:21 PM bug 24 并写入文件example.log中 (编程)
 
linux创建目录时候可以使用filemode=0o755 来指定权限    
import logging
# logging.basicConfig(filename='example.log', format='%(asctime)s %(message)s', level=logging.INFO, datefmt='%m/%d/%Y %H:%M:%S %p')
# logging.warning('bug 24')
 
 
 

猜你喜欢

转载自www.cnblogs.com/pandaboy1123/p/9314850.html
今日推荐