python-基础
1.什么是Python?
python是一种面向对象的,交互式的,解释型的计算机程序设计语言。python具有高可读性,它使用英文关键词,而非标点符号,语法结构也比其他语言简单。
2.python的主要功能是什么?
python是解释型语言,因此运行时不需要编译
声明变量和类似变量时,不需要重复申明变量的类型
python非常适合面向对象的编程,因为它允许类的定义以及组合和继承
函数是第一类对象,这意味着它们可以分配变量,从其他函数返回并传递给函数,类也是第一类对象
用于许多领域,包含web应用开发,爬虫,自动化,科学建模,大数据应用等
3.python支持的数据类型有哪些?
Number(数字)
String(字符串)
List(列表)——有序集合,值可变
Tuples(元组)——有序集合,值不可变
dictionary(字典)——无序集合
字典中的元素是通过键来获取的,不是通过位移来获取
4.什么是python模块?
模块是一个python脚本,通常包含import,函数,类,变量的定义以及python可运行的代码,文件扩展名为‘.py’
5.python解释器种类以及特点
Cpython:这个解释器是C开发的,默认启动的python就是Cpython,用的最多
Ipython:Ipython是基于Cpython的一个交互式解释器,也就是说,Ipython只是在交互上有所增强
PyPy: 它的目标是执行速度,所以可以显著提高python代码的执行速度
Jpython: Jpython是运行在java平台的python解释器,可以直接将python代码编译成java字节码执行
IronPython:运行在微软平台.Net的python解释器,可以将python代码编译成.net字节码
6.什么是python切片
python中有序序列都支持切片(slice),例如数组,元祖,字符。如:a='11111112222222223333333' b=a[2:9]
7.python中的‘%s’代表啥
是字符串的占位符,还有%d
8.python编程中的函数是什么?
函数表示代码块并且可重用实体的对象,它为程序带来了模块化,并提供了更高程度的代码可重用性。
9.python有多少种类型的函数可用
两种:内置和自定义 内置(print()、dir()、len()等)
10.深拷贝和浅拷贝的区别
深拷贝:将一个对象拷贝到另一个对象中,意味着你对另一个对象做改变时,不影响原对象
浅拷贝:将一个对象的引用拷贝到另一个对象中,如果我们在拷贝中改变,会影响原对象
11.python的pass和continue的区别
pass:什么都不用在做,其他代码像往常一样执行;continue代码结束本次循环,直接进入下一次循环,循环从下一次迭代中恢复
12.pythonpath环境变量的用途
此变量告诉python解释器在何处找到导入程序的模块文件
13.python中的继承
继承允许一个类获得另一个类的所有成员(比如属性和方法)。继承提供代码的可重复性,使创建和维护应用程序更加方便。
单一继承:派生类获取单个超类的成员
多重继承:从基类base1继承的派生类d1,d2继承自base2
分层继承:从一个基类继承可以继承任意数量的子类
多重继承:派生类从多个基类继承
14.请谈谈.pyc和.py的区别
两种文件均保留字节代码,但.pyc文件是python文件的编译版本
15.在python中命名和文件相关的模块
python库/模块提供了一些函数,你可以在文件系统上操作文本文件和二进制文件。使他们完成创建文件,更新内容,复制和删除文件的操作,这些库时os、os.path、shutil
16.解释python支持的所有文件处理方式
有以下三种方式打开:
1)只读模式(r),只写模式(w), 读写模式(rw),附加模式(a)
2)通过指定选项t,可以在上述任一模式打开文本文件【rt、wt、rwt、at】
3) 通过指定选项b,可以打开任一二进制文件【rb、wb、rwb、ab】
17.lambda和def间区别
lambda是匿名函数,def必须指定一个函数名称,里面可以包含多个表达式;lambda形成一个函数对象并返回,支持在列表和字典中使用;def可以有一个return语句,而lambda不可以。
18.大数据文件读取
常用的方法是一行一行读取,也可以利用生成器generator【我不常用】
19.find和grep
grep命令是一个强大的文本搜索工具,搜索内容可以是正则表达式,允许多文本内容进行按模式查找。如果找到匹配数据,按行打印;find适合搜索符合条件的文件,可以搜索特定用户属主的文件。
20.常用Linux命令
cd ls pwd head tail shuf grep 'wc -l' cp mv rm date find
21.描述数组,链表,队列,堆栈的区别
数组和链表是数据存储方式的概念,数组在连续空间中存储数据,而链表可以在非连续空间中存储数据;队列和堆栈是描述数据存取方式的概念,队列是先进先出,堆栈是后进先出;队列和堆栈可以用数组来实现,也可以用链表来实现
22.请解释*args和**kwargs的含义
当我们不知道像函数传递多少参数时,就使用*args
当我们不知道像函数传递多少关键字参数时,就使用**kwargs
23.python中去除空格
左空格:lstrip();右空格:rstrip();两边空格:strip()
24.如何用python输出Fibonacci数列,斐波那契
Fibonacci:从第三项开始,每一项都是前两项之和
25.什么是递归
在调用一个函数的过程中,直接或者间接的调用了函数本身就叫递归。但为了避免死循环,必须要有一个结束条件
例如,求n!,阶乘