python知识点常考

  1. python的内存管理
    python的内存管理是由私有的heap空间进行的,数据和数据结构都在heap里面,由python的解释器CPython(cmd黑屏)进行管理。
    2.POST 和GET 区别
    POST上传数据到服务器(form表单 ,ajax),大小受到服务端设置客户端的上传数据的限制,安全
    GET 从服务器获取数据(页面的跳转)
    GET请求的数据附加在URL之后,?分割,&连接多个数据(127.0.0.1/?name=zhao&telephone=15613149576),大小受到服务器对客户端URL数据的限制,不安全
    3.python的垃圾回收
    Python是动态语言(动态语言就是python在运行的时候在进行内存的分配和数据类型的判断)
    引用计数为主
    4.装饰器
    作用1.引用日志
    2。函数执行时间统计
    3.执行函数前预备处理
    4.缓存
    5.权限校验

1.基础知识题目
1.1 深拷贝和浅拷贝的区别:
import copy copy.copy copy.deepcopy
深拷贝原值改变新的值不变,重新开辟一个地址
浅拷贝就是增加了一个变量指向原地址
1.2 function(args,**kwargs)
当传入的参数是tuple和list用第一个参数。
当传入的参数关键字不确定时(dict),用第二个
就是
args会把位置参数转换为tuple
就是**kwargs会把位置参数转换为dict
1.3解释性语言和编译性语言
解释性:python 在执行程序时,每一条都要解释成机器语言给计算机执行
编译性:c c++ java 直接转换为二进制运行
1.4一个字节或者一个字等于8位
1B = 8bit
1.5列举PEP8规范
缩进
import 不能引用多个库函数
规范的注释

1.6 python3编码用utf-8 Python2用acsii
1.7python2和3的区别
python2 raw_input range xrange print
python3 inpit range xrange禁用print()
1.8字符串常用的操作
replace(old,new,[,max])
替换不超过多少次[,max]
split(’ ‘)
以空格为分割来分割字符串,分割完成变为list[‘12’,‘34’]
join(seq)
已制定字符串作为分割符号,将seq中所有的元素合并为一个新的字符串
find 和index find(str,beg,end)监测str是否包含在字符串中,
index不包含就是报错
str = ‘133222’
str2 = ‘33111’
str = str.find(str2)
print(str)
1.9list操作
append ,pop,insert,remove,reverse,sort
增加
list.append(obj)在末尾插入对象
list.insert(index,obj)将对象插入list
删除
list.pop([index=-1])移除列表的最后一个元素默认,并返回
list.remove(obj)移除列表的第一个匹配值
修改
list.reverse()翻转列表
查找
list.sort(reverse=False)
list.count(obj)统计出现的次数
1.10字典dict
radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
radiansdict.keys()
返回一个迭代器,可以使用 list() 来转换为列表
radiansdict.values()
返回一个迭代器,可以使用 list() 来转换为列表
radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
修改:
dic.update(dict2)合并两个字典
删除:
dic.pop(“key”)
del dic[‘key’]
1.11lambda表达式以及应用场景、
lambda x:x**2 和内置函数使用,map,filter,减少了函数的定义,更加的方便
1.12 pass
空语句不执行任何操作
保证语句完整
保证予以完整
def func():
pass不报错
1.13 is == ===区别
is判断地址
== 判断数值
===判断数值和数据类型
1.14python垃圾回收机制
引用计数(主要)
标记-清除
1.15列举常见的内置函数
map,filter,zip,len,sum,reduce,enumerate,foramt,range,hash,str,list,iter
1.16python 数据类型
list dict 可变数据类型给地址
tuple str number 不可变给数值
byte(encode())
1.17安装第三方模块
pip3 install rsync
1.18列举常用的第三方库
os,sys,time,math,re,copy,random,json
1.19常用字符串格式化操作
%s %d print(’%s,%d’%(‘string’,10))
.format()
1.20 简述生成器,迭代器,和应用场景
生成器:一边循环一边计算的机制,通过next()取值,
1.将列表生成式[]改为()
2.含有yield关键字的函数就是生成器generator
应用场景 :优化代码,节省内存
迭代器同时实现了__iter__和__next__方法可迭代对象
1.21闭包
在一个外函数中定义一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用
def a(x):
B = 1
def b():
print(B)
print(x)
return b
a(7)()
1.22os和sys模块作用:
os负责程序和操作系统的交互,提供了访问操作系统的接口
sys负责和python解释器的交互

5。使用朋友同行输出一个Fibonacci数列
a,b = 0,1
while b<100:
print(b)
a,b = b,a+b
6.python的继承
一个类继承另一个类,同时获取所有的类成员(属性和方法)

继承的优点,减少代码的重复,便于维护

7.迭代器和生成器区别
迭代器是一个抽象概念,任何对象,它的next方法和iter方法返回自己本身。iter是内置函数,iter()会返回一个定义了next方法的迭代器对象,
class MyNumbers:
def iter(self):
self.a = 1
return self

def next(self):
x = self.a
self.a += 1
return x

myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
生成器是创建得带去简单而强大的工具写起来就像正规函数,在返回数据是使用yield语句,每次next()被调用,生成器会返回它脱离的位置
#!/usr/bin/python3

import sys

def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成

while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()
9.ngnix正向代理和反向代理
正向代理:在客户端部署一些设置文件
反向代理:在服务端部署配置文件
一般都是nginx反向代理用户不会正向代理
10.django重定向
用redirect
用redirect和reverse
状态码就是301和302
11.django本身的runserver,为什么不能用来部署
1.runserver用来测试的不稳定
2.真正的部署采用ngnix和uwsgi
12.mysql引擎
innoDB:支持事务(出错可以返回上一步),适合频繁修改以及安全性较高的应用,适合修改和删除,使用需要指定
MyISAM:不支持事务,适合查询和插入为主,默认引擎
13.python多线程thread,运行顺序
1.获得GIL
2.执行本线程
3.遇到IO操作或者线程执行完毕,释放GIL(本线程进入睡眠),其他线程争夺GIL
4.重复上述步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值