python面试宝典1概述与数据结构

学习目标

用于对付python、测试、运维等python基础面试,涵盖如下内容:

  • Python的核心概念
  • 面向对象编程(OOP Object Oriented Programming)的概念
  • Python中的模块
  • Python GUI (Tkinter)
  • 文件处理
  • Python数据库
  • NumPy, Pandas
  • Django, Flask

本文完整版本地址:https://www.kdocs.cn/l/cmLtwuCYoPNM

1. 请简述python语言名字的由来

Python是由Guido van Rossum在1991年发布的。在20世纪70年代,有一个流行的BBC喜剧电视节目叫Monty Python's Fly Circus,Van Rossum恰好是这个节目的忠实粉丝。因此,当Python被开发出来时,罗萨姆将该项目命名为Python。

2. 请简述pPython的特点

Python是一种高级的、解释性的、交互式的、面向对象的脚本语言。它具有高度可读性。

  • 函数式和结构化的编程方法,以及OOP。
  • 自动垃圾收集。
  • 可以作为一种脚本语言使用,也可以编译成字节码用于大型应用。
  • 高级的动态数据类型并支持动态类型检查。
  • 胶水语言,与C,C++,COM、ActiveX、CORBA、Java等方便对接

3. Python可以在哪些应用领域使用?

  • GUI的桌面应用
  • 网络应用
  • 游戏
  • 科学和计算
  • 语言开发
  • 企业和商业应用开发:在人工智能、物联网、数据分析等方面为核心语言。
  • 操作系统

4. Python的好处是什么?

  • 开源。Python语言是在OSI批准的开放源码许可证下开发的,这使得它可以自由使用和发布,包括用于商业目的。
  • 易学。Python提供了极好的可读性和简洁易学的语法,这有助于初学者利用这种编程语言。
  • 广泛的支持库。Python提供了庞大的标准库,包括互联网协议、字符串操作、网络服务工具和操作系统接口等领域。它大大减少了代码的长度。
  • 强大的数据结构。Python有内置的列表和字典数据结构,可以用来构建快速的运行时数据结构。
  • 生产力和速度。Python有整洁的面向对象的设计,提供了增强的过程控制能力,并拥有强大的集成和文本处理能力及其单元测试框架,所有这些都有助于提高其速度和生产力。

5.解释一下Python中的内存管理

内存管理是有效地分配、取消分配和协调内存的过程,以便所有不同的进程顺利运行,并能最佳地访问不同的系统资源。内存管理还包括清理不再被访问的对象的内存。

在Python中,内存管理器定期运行来清理、分配和管理内存来负责这类任务。与 C、Java 和其它编程语言不同,Python 通过使用引用计数来管理对象。这意味着内存管理器会跟踪程序中每个对象的引用数量。

让我们通过以下几点来理解内存管理。

  • Python的内存是由Python的私有堆空间管理的。所有的Python对象和数据结构都位于私有堆中。程序员不能访问这个私有堆,解释器负责管理这个Python私有堆。
  • Python对象的Python堆空间的分配是由Python内存管理器完成的。核心API为程序员编码提供了一些工具的访问权。
  • Python内存管理器管理着被称为 "块 "的内存块。相同大小的块的集合构成了 "池"。池是在Arenas上创建的,256kB的内存分配在heap=64的池上。如果对象被销毁,内存管理器会用相同大小的新对象来填充这个空间。
  • Python也有内置的垃圾收集器,它回收所有未使用的内存并释放内存,使其可以进入堆空间。

6.Python有哪些环境变量?这些变量的用途是什么?

  • PYTHONPATH:它与PATH变量相同。Python 解释器使用它来搜索模块文件。
  • PYTHONSTARTUP:它存储了包含 Python 代码的初始化脚本的路径。每次 Python 解释器启动时,它都会被运行。
  • PYTHONCASEOK:在 Windows 中,它使 Python 在导入语句中找到第一个不区分大小写的匹配。需要设置才能激活。

7.Python是脚本语言吗?

是的,Python是一种脚本语言。它也是一种解释型的高级编程语言,用于满足一般的编程要求。它是由名为Guido van Rossum的软件开发人员设计和开发的。
它首次发布于1991年。它动态类型且为很强类型。python脚本语言的文件名扩展名有不同的类型,如.py、.pyc、.pyd、.pyo、.pyw、.pyz。

8.列出Python的重要数据类型

  • 文本类型:str
  • 数值类型:int、float、complex
  • 序列类型:List, tuple, range
  • 映射类型:Dict
  • 集合类型:set,frozenset
  • 布尔类型: bool
  • 二进制类型:bytes、bytearray、memoryview
    以下内容的输出是什么?
    str="swati computers"?
    print (str)

9.如何查看Python的关键字

import keyword
print(keyword.kwlist)

9.什么是pep 8?

答案:PEP是Python Enhancement Proposal的缩写。它是一组规则,规定了如何格式化Python代码以获得最大的可读性。

10.以下内容的输出是什么

str="{s}{c}{j}".format(j='Jaipur',s='Swati',c='Computers')
print(str)

SwatiComputersJaipur

11.以下内容的输出是什么

str="apple#banana#kiwi#orange"
print(str.split("#",2))

[‘apple’, ‘banana’, ‘kiwi#orange’]

11.什么是Python模块?请说出Python中一些常用的内置模块?

Python 模块是包含 Python 代码的文件。这些代码可以是函数类,也可以是变量。它是一个包含可执行代码的 .py 文件。一些常用的内置模块有:

  • os
  • sys
  • math
  • random
  • data time
  • json

12.什么是Python的局部变量和全局变量?

全局变量是在任何模块和函数或方法之外定义的。这些变量可以被程序中的任何函数访问。本地变量是在使用它的函数或方法内部定义的。

13.简述Python中的类型转换?

类型转换是指将一种数据类型转换为另一种。

  • int():将任何数据类型转换为整数类型。
  • float(): 将任何数据类型转换为浮点数类型。
  • ord(): 将字符转换为整数。
  • hex(): 将整数转换为十六进制。
  • oct(): 将整数转换为八进制。
  • tuple(): 该函数用于转换为元组。
  • set(): 转换为set类型。
  • list(): 该函数用于将任何数据类型转换为列表类型。
  • dict(): 此函数用于将(key, value)的元组转换为字典。
  • str(): 用于将任何类型转换为字符串。
  • complex(real,imag): 该函数将实数转换为复数(real,imag)数。

13.解释一下Python中的列表?

列表是Python中最通用的复合数据类型。列表包含由逗号隔开的项目,并被括在方括号 ([]) 内。在某种程度上,列表与 C 语言中的数组相似。它们之间的一个区别是,属于列表的所有项目可以是不同的数据类型。
列表中的值可以用分片操作符([]和[:])来访问,索引从列表的开头0开始,一直到结尾-1。

13.什么是元组?

元组是一种类似于Python列表的数据类型。它由一些用逗号分隔的值组成。然而,与列表不同的是,图元被括在圆括号内,且不可修改。

14.列表和元组的区别?

主要区别:格式上中括号和小括号;可变与不可变。

15.python中的zip()有什么用?

答案:zip()接纳2个或以上的迭代器,返回它们映射的迭代器。输入迭代器可以是列表、元组、字典等。
比如:

>>> name=["swati", "shweta"]
>>> age=[10,20]
>>> new_entity=zip(name,age)
>>> new_entity=set(new_entity)
>>> new_entity
{('swati', 10), ('shweta', 20)}

15.简述 Python 中的字典?

答:Python 的字典是一种哈希表类型。它们的工作方式类似于 Perl 中的关联数组或散列,由键值对组成。字典由大括号 ({}) 包围,可以用方括号 ([]) 来访问。

16.简述 Python中的frozenset()?

Set是一个无序的集合数据类型,它是可迭代的,可改变的,并且没有重复的元素。frozenset()是Python中的一个内置函数,它将一个可迭代的对象作为输入,形成不可变的集合。在 Python 中,frozenset 与 set 相同,只是其元素是不可变的。

17.什么是Python中的_name_?

由于Python中没有main()函数,当向解释器发出运行Python程序的命令时,将执行缩进到0级的代码。name是一个特殊内置变量。如果源文件作为主程序被执行,解释器将name变量设置为"main"的值。如果这个文件作为模块导入的,name将被设置为该模块的名称。

你可能感兴趣的:(python面试宝典1概述与数据结构)