一、基础
1、语言相关问题
- 问:python语言有什么特点,什么优点?
特点:python是一个解释型语言,代码是通过解释器,边解释边执行,执行哪段代码就解释哪段代码,不需要预编译生成可执行文件。
解释型语言缺点:太过依赖解释器环境,解释器是一个虚拟环境,在没有运行代码前就得申请内存、开辟空间,启动解释器,消耗更多内存。
python缺点: 执行效率不高
python优点:写代码效率高,开发速度快,跨平台性好(一次开发,到处运行,Window、Linux、Mac上只要有python解析器,就可以运行python代码)。相对容易学习,开源项目多。
- 问:你是为什么使用python做开发,你是怎么走上python开发的?
可以列举理由: 大学时候 学的python 实习的学的是python 发现python很有意思:说出来上一问的优点。。。
- 问:你出了python,还用过什么语言?
JavaScript(必会,网页脚本语言,vue中使用的就是JS语言)
- 问:什么是编译型语言
编译型语言需要先编译,生成一个二进制文件,例如C,生成exe可执行文件;然后在执行。
优点:执行效率高。
缺点:调试bug麻烦,编写代码过程见效慢(写了代码不能立即看到效果,需要先编译在执行)
2、python PEP8规范
PEP8规范是python代码书写的指导规范,不是语法错误,是书写规范。(不遵守,代码不会报错的)
每一行缩进4个空格
所有行限制的最大字符数为79
不推荐一行导入多个模块(一行导入一个模块)
不使用单字符作为变量名,容易出错(1、0 像I、O)
类命名要首字母大写;函数命名要首字母小写,如果想提高可读性可以用下划线分隔。
3、常见的编码有哪些
ASCII 1个字节 英语语言(0-9 a-z A-Z 字符)
GBK 2个字节 中文编码 支持 繁体字
UTF-8 不定长编码(1-3字节) 万国码 支持 各种语言
1.为了处理英文字符,产生了ASCII码。
2.为了处理中文字符,产生了GB2312。
3.为了处理各国字符,产生了Unicode。
4.为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式
二、python基础
1、p2和p3的区别
1、 python2 使用print打印 python3 使用print()方法打印
2、python2 的除法获得结果是整数 python3的除法获得结果是是浮点型数据,整除要双斜杠//
3、python2 默认是ASCII编码 要使用unicode 需要专门定义unicode字符串 例如 u'hello'
python3 默认就是unicode(utf-8)字符串
4、p2高级函数返回的是list p3 高级函数返回的iteration迭代器
2、is 和 == 区别
== 只要值一样 则 为True
is 不仅要求值一样,还要求地址一样 才为True
例如:x=1 y=1 则 x is y 是True 这是因为python中有常量池 1属于常量池,x与y引用的是同一个常量,所以他们的地址是一样的。
例如 x=[1,2,3] y=[1,2,3] x==y 就是 True 但 x is y 是False 因为 x和y是不同的内存空间,地址页不一样
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5wpbgcPE-1620790899601)(…/…/…/images/image-20210427105228602.png)]
3.range与xrange
我没有用过xrange 我用过range, range表示一个范围,range函数返回的是一个可迭代对象),而不是列表类型。Python2中的range函数 返回的是一个list。
range(1,5) 不包括5 ,python中 这种区间的参数,一般都是 大于等于最新值,小于最大值
据我考察:python3返回列表的时候,都是返回 可迭代对象 不在直接返回列表了。
4、三元表达式
true表达式 if 判断表达式 else false表达式
y= 20 if x==3 else 10
5、互换变量
x,y=3,4
x,y=y,x
就可以实现 x与y的值的互换,由 x=3 y=4 换成了 x=4 y=3
序列解包 序列封包
6、深拷贝与浅拷贝
-
浅拷贝: 只拷贝第一层,没有拷贝深层,修改第一层相互不影响,修改第二层,相互影响。
-
深拷贝: 递归性质的拷贝,会在内存中生成一套完全一样的内容,修改相互不影响
切片操作就是浅拷贝。
x = ["1", "2", ['a', 'b', 'c'], "3", "4", "5"]
y = x[:3]
print(id(x), id(y))
y[2].append('k')
print(x, y)
7、python的自省
程序在运行时,可以获取到对象的信息 3个属性 2个类型
自省属性 | 介绍 | 使用 |
---|---|---|
dir | 获取对象中的所有属性(属性、方法;继承自父类的属性、方法) | |
type | 查看对象的类型 | |
hasattr | 判断对象中是否有某属性 | |
getattr | 根据属性名 获取对象的属性值 | |
isinstance | 判断对象是否是某个类型 | |
案例:
class Student:
country = "中国"
def __init__(self, name, age=None):
self.name = name
self.age = age
def say(self):
print("我是{}")
return "OK"
def add():
print("add")
if __name__ == '__main__':
s = Student("张三")
print(dir(s)) #
print(type(s))
print(hasattr(s, "gender"))
print(getattr(s, "name"))
print(getattr(s, "say")())
print(isinstance(s, list))
print(isinstance(s, Student))
8、CSV文件,是什么
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字