简答题
1.列表和元组之间的区别是什么?字典和列表的主要区别是什么?
-
字符串:不可变、有序序列;可以索引切片;引号界定;
单一字符的有序组合。例如,str=“python”
-
列表:可变、有序序列;可以索引切片;[ ]界定;
长度和内容都是可变的,可自由对列表中数据项进行增加、删除或替换。
没有长度限制,元素类型可以不同,使用非常灵活。例如ls = [425, “BIT”, [10, “CS”], 425]
-
元组:不可变、有序序列;可以索引切片;( )界定;
包含0个或多个数据项的不可变序列类型。元组生成后是固定的,其中任何数据项不能替换或删除。
例如,color = (“red”, 0x001100, “blue”, creature)
-
集合:可变、无序;不可以索引切片;{ }界定;
包含0个或多个数据项的无序组合。例如S = {425, “BIT”, (10, “CS”), 424}
-
字典:可变、无序映射;不可以索引切片;{ }界定;
包含0个或多个键值对的集合。
字典是一个键值对的集合,该集合以键为索引,一个键信息只对应一个值信息;
key不重复,不可变; value可变
例如,shoudu={“中国”:“北京”, “美国”:“华盛顿”, “法国”:“巴黎”}
2.简述list和tuple的区别?
相同点:都是有序集合
异同点:1.list是可变数据类型,tuple是不可变数据类型
2.定义方式:list[] tuple()
3.list有append(),insert(),extend();pop(),remove(),clear()等增删方法;tuple没有
3.什么是全局作用域?什么是局部作用域?
- 作用域——变量起作用的范围
- 全局作用域——变量在整个程序中都有效。
- 局部作用域——变量只在代码块中有效,比如函数内部。
4.简述定义函数的规则?
def 函数名称([参数]):
[函数注释]
[函数体]#创建语法
若有返回值,则用return返回;若无返回值,无需return,但是默认依然返回值:None
5.简述如何使用xpath进行爬虫?
- 首先导入需要使用模块和库(lxml和requests)
- 分析目标网站,拿到正确的url网址,发送网络请求
- 接受网络请求返回的数据,使用xpath语法解析网页内容
- 数据处理和分析
6.请给出break和continue的定义和区别。
- break:退出整个循环,执行循环体外的语句;
是结束整个循环过程,不再判断执行循环的条件是否成立
- continue:退出本次循环,进入下一轮循环;
只结束本次循环,而不终止整个循环的执行
7.声明变量需要注意事项有哪些。
以字母、数字、下划线组成,不能以数字开头 ,大小写敏感,不能使用系统关键字
8. __new__和__init__的区别?
①__new__是一个静态方法,而__init__是一个实例方法.
②创建一个新实例时调用__new__,初始化一个实例时用__init__.
③__new__方法会返回一个创建的实例,而__init__什么都不返回.
④只有在__new__返回一个cls的实例时,后面的__init__才能被调用.
9.read,readline和readlines之间的区别?**
- read 读取整个文件
- readline 每次读取一行内容,使用生成器方法
- readlines 一次性读取所有行内容,到一个迭代器,并按行返回形成一个列表,以供遍历
10.简单解释Python基于值的自动内存管理方式?
- 基于值:在Python中可以为不同变量赋相同的值,这个值在内存中只有一份,多个变量指向同一个内存地址;
- 自动内存管理功能:会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。
11.异常和错误有什么区别?
-
异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。
严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常。
例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。
-
错误是语法或是逻辑上的。当检测到一个错误时,解释器会指出当前流已经无法继续执行下去,这个时候就会出现异常。
12.用两个元素之间有对应关系的list构造一个dict
names = ["zyh","xp"]
ages = [20, 23]
result = dict(zip(names,ages))
print(result)
编程题
1.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
def tongji(str):
alpha = 0 # 统计字母
space = 0 # 统计空格
digit = 0