Python面试题



尊敬的读者,这些Python编程语言面试题是专门为帮助您了解在Python编程语言面试中可能遇到的问题类型而设计的。根据我的经验,优秀的 interviewers 很少会提前计划好要问哪些具体问题,通常问题会从该主题的一些基本概念开始,然后根据进一步的讨论和您的回答继续进行。

Python 是一种高级的、解释型的、交互式的和面向对象的脚本语言。Python 的设计目标是使其具有高度的可读性。它经常使用英语关键字,而其他语言使用标点符号,并且它比其他语言具有更少的句法结构。

以下是Python的一些显著特性:

  • 它支持函数式和结构化编程方法以及面向对象编程。

  • 它可以用作脚本语言,也可以编译成字节码以构建大型应用程序。

  • 它提供非常高级的动态数据类型并支持动态类型检查。

  • 它支持自动垃圾回收。

  • 它可以很容易地与C、C++、COM、ActiveX、CORBA和Java集成。

PYTHONPATH - 它与PATH的作用类似。这个变量告诉Python解释器在哪里查找导入到程序中的模块文件。它应该包含Python源代码库目录和包含Python源代码的目录。PYTHONPATH有时由Python安装程序预设。

PYTHONSTARTUP - 它包含一个初始化文件的路径,该文件包含Python源代码。每次启动解释器时都会执行它。在Unix中,它被命名为.pythonrc.py,它包含加载实用程序或修改PYTHONPATH的命令。

PYTHONCASEOK - 它用于在Windows中指示Python在import语句中查找第一个不区分大小写的匹配项。将此变量设置为任何值以激活它。

PYTHONHOME - 它是替代的模块搜索路径。它通常嵌入在PYTHONSTARTUP或PYTHONPATH目录中,以方便切换模块库。

是的!Python是一种区分大小写的编程语言。

Python有五种标准数据类型:

  • 数字

  • 字符串

  • 列表

  • 元组

  • 字典

它将打印完整的字符串。输出将是Hello World!。

它将打印字符串的第一个字符。输出将是 H。

它将打印从第 3 个到第 5 个字符。输出将是 llo。

它将打印从第 3 个字符开始的字符。输出将是 llo World!。

它将打印字符串两次。输出将是 Hello World!Hello World!。

它将打印连接后的字符串。输出将是 Hello World!TEST。

它将打印完整的列表。输出将是 ['abcd', 786, 2.23, 'john', 70.200000000000003]。

它将打印列表的第一个元素。输出将是 abcd。

它将打印从第二个到第三个元素。输出将是 [786, 2.23]。

它将打印从第三个元素开始的元素。输出将是 [2.23, 'john', 70.200000000000003]。

它将打印列表两次。输出将是 [123, 'john', 123, 'john']。

它将打印连接后的列表。输出将是 ['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

元组是另一种序列数据类型,类似于列表。元组由多个用逗号分隔的值组成。但是,与列表不同,元组用括号括起来。

列表和元组的主要区别在于:列表用方括号 ([ ]) 括起来,其元素和大小可以更改,而元组用括号 (( )) 括起来,不能更新。元组可以被认为是只读列表。

它将打印完整的元组。输出将是 ('abcd', 786, 2.23, 'john', 70.200000000000003)。

它将打印元组的第一个元素。输出将是 abcd。

它将打印从第二个到第三个元素。输出将是 (786, 2.23)。

它将打印从第三个元素开始的元素。输出将是 (2.23, 'john', 70.200000000000003)。

它将打印元组两次。输出将是 (123, 'john', 123, 'john')。

它将打印连接后的元组。输出将是 ('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')。

Python 的字典是一种哈希表类型。它们的工作方式类似于 Perl 中的关联数组或哈希,由键值对组成。字典键几乎可以是任何 Python 类型,但通常是数字或字符串。另一方面,值可以是任何任意的 Python 对象。

字典用花括号 ({ }) 括起来,可以使用方括号 ([]) 分配和访问值。

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

使用 dictionary.keys() 函数,我们可以从字典对象中获取所有键。

print dict.keys()   # Prints all the keys

使用 dictionary.values() 函数,我们可以从字典对象中获取所有值。

print dict.values()   # Prints all the values

int(x [,base]) - 将 x 转换为整数。如果 x 是字符串,则 base 指定基数。

long(x [,base] ) - 将 x 转换为长整数。如果 x 是字符串,则 base 指定基数。

float(x) − 将 x 转换为浮点数。

str(x) − 将对象 x 转换为字符串表示形式。

repr(x) − 将对象 x 转换为表达式字符串。

eval(str) − 评估字符串并返回一个对象。

tuple(s) − 将 s 转换为元组。

list(s) − 将 s 转换为列表。

set(s) − 将 s 转换为集合。

dict(d) − 创建一个字典。d 必须是 (键,值) 元组的序列。

frozenset(s) − 将 s 转换为冻结集合。

chr(x) − 将整数转换为字符。

unichr(x) − 将整数转换为 Unicode 字符。

ord(x) − 将单个字符转换为其整数值。

hex(x) − 将整数转换为十六进制字符串。

oct(x) − 将整数转换为八进制字符串。

** 指数 - 对运算符执行指数(幂)计算。如果 a = 10 且 b = 20,则 a**b = 10 的 20 次幂。

// 地板除法 - 运算数的除法,结果是商,其中小数点后的数字被删除。

is - 如果运算符两侧的变量指向同一个对象,则评估结果为真,否则为假。x is y,如果 id(x) 等于 id(y),则结果为 1。

not in - 如果在指定的序列中找不到变量,则评估结果为真,否则为假。x not in y,如果 x 不是序列 y 的成员,则 not in 的结果为 1。

break 语句 - 终止循环语句并将执行转移到紧跟在循环后面的语句。

continue 语句 - 使循环跳过其主体其余部分,并在重新迭代之前立即重新测试其条件。

pass 语句 - Python 中的 pass 语句用于在语法上需要语句但不需要执行任何命令或代码时。

choice(seq) − 从列表、元组或字符串中返回一个随机项。

randrange ([start,] stop [,step]) − 从 range(start, stop, step) 返回一个随机选择的元素。

random() − 返回一个随机浮点数 r,使得 0 小于或等于 r 且 r 小于 1。

seed([x]) − 设置用于生成随机数的整数起始值。在调用任何其他随机模块函数之前调用此函数。返回 None。

shuffle(lst) − 就地随机化列表的项目。返回 None。

capitalize() − 将字符串的首字母大写。

isalnum() − 如果字符串至少有 1 个字符且所有字符都是字母数字字符,则返回 true,否则返回 false。

isdigit() − 如果字符串仅包含数字,则返回 true,否则返回 false。

islower() − 如果字符串至少有 1 个大小写字符且所有大小写字符都小写,则返回 true,否则返回 false。

isnumeric() − 如果 Unicode 字符串仅包含数字字符,则返回 true,否则返回 false。

isspace() − 如果字符串仅包含空格字符,则返回 true,否则返回 false。

istitle() − 如果字符串正确地进行了“标题大小写”,则返回 true,否则返回 false。

isupper() − 如果字符串至少包含一个大小写字符,并且所有大小写字符都为大写,则返回 True;否则返回 False。

join(seq) − 使用分隔符字符串,将序列 seq 中元素的字符串表示形式合并(连接)成一个字符串。

len(string) − 返回字符串的长度。

ljust(width[, fillchar]) − 返回一个用空格填充的字符串,其中原始字符串左对齐到总共 width 列。

lower() − 将字符串中的所有大写字母转换为小写。

lstrip() − 删除字符串中所有前导空格。

max(str) − 返回字符串 str 中最大的字母字符。

min(str) − 返回字符串 str 中最小的字母字符。

replace(old, new [, max]) − 将字符串中所有出现的 old 替换为 new,如果给定 max,则最多替换 max 次。

strip([chars]) − 对字符串执行 lstrip() 和 rstrip() 操作。

swapcase() − 反转字符串中所有字母的大小写。

title() − 返回字符串的“标题大小写”版本,即所有单词都以大写字母开头,其余为小写。

upper() − 将字符串中的所有小写字母转换为大写。

isdecimal() − 如果 Unicode 字符串仅包含十进制字符,则返回 True;否则返回 False。

要删除列表元素,如果知道要删除哪个确切的元素,可以使用 del 语句;如果不知道,可以使用 remove() 方法。

3.

[1, 2, 3, 4, 5, 6]

['Hi!', 'Hi!', 'Hi!', 'Hi!']

True

1
2
3

3,偏移量从零开始。

2,负数:从右边计数。

2, 3,切片获取部分。

cmp(list1, list2) − 比较两个列表的元素。(注:`cmp` 函数在 Python 3 中已移除,可以使用其他方法例如比较运算符进行比较)

len(list) − 返回列表的总长度。

max(list) − 返回列表中值最大的项目。

min(list) − 返回列表中值最小的项目。

list.index(obj) − 返回列表中 obj 首次出现的最低索引。

list.insert(index, obj) − 在索引 index 处将对象 obj 插入列表。

list.pop(obj=list[-1]) − 删除并返回列表中的最后一个对象或 obj。

list.remove(obj) − 从列表中删除对象 obj。

list.reverse() − 就地反转列表中的对象。

list.sort([func]) − 对列表中的对象进行排序,如果给出,则使用比较函数 func。

“lambda”是 Python 中的一个关键字,用于创建匿名函数。lambda 函数不包含语句块,也不包含 return 语句。

存根 (Stub)。

栈 (Stack)。

是。

Python 中有一些模块和函数只能在某些平台上运行。

是的,它有一个编译器,该编译器会自动工作,因此我们不会注意到 Python 的编译器。

Django(Python 的 Web 框架)。

2. 微框架,例如 Flask 和 Bottle。

3. 用于高级内容管理的 Plone 和 Django CMS。

下表解释了 Python 2 版本和 Python 3 版本之间的区别。

序号 部分 Python 2 版本 Python 3 版本
1. 打印函数

打印命令无需括号即可使用。

Python 3 需要括号才能打印任何字符串。如果没有括号,它将引发错误。

2. Unicode

ASCII str() 类型和单独的 Unicode(),但在 Python 2 中没有字节类型代码。

Unicode (utf-8),它有两个字节类:

  • 字节
  • 字节数组。

3. 异常

Python 2 接受新的和旧的语法表示法。

当我们不将异常参数括在括号中时,Python 3 将依次引发 SyntaxError。

4. 比较不可排序类型

它不会引发任何错误。

如果我们尝试比较不可排序的类型,它会引发“TypeError”作为警告。

Jython

(Jython 是 Jpython 的继承者。)

是。

否。

OS。

当代码行缩进 4 个空格时,一个代码块开始。

def check(a,b):
   if(len(a)!=len(b)):
      return False
   else:
      if(sorted(list(a)) == sorted(list(b))):
         return True
   else:
      return False

Scikit-learn 是用于机器学习的 Python 库。

pass 表示什么都不做,即表示空操作。

Pylint 和 pychecker。

计算列表中所有数字之和的程序为:

def sum(numbers):
   total = 0
   for num in numbers:
      total+=num
   print(''Sum of the numbers: '', total)
sum((100, 200, 300, 400, 0, 500))

我们定义一个名为“sum”的函数,参数为 numbers。在 for 循环中,我们存储列表所有值的总和。

反转字符串的程序如下:

def string_reverse(str1):

rev_str = ' '
index = len(str1) #defining index as length of string.
while(index>0):
   rev_str = rev_str + str1[index-1]
   index = index-1
   return(rev_str)

print(string_reverse('1tniop'))

首先,我们声明一个变量来存储反转后的字符串。然后使用 while 循环和字符串的索引(索引由字符串长度计算),我们反转字符串。当索引大于零时,while 循环开始。每次索引减少 1。当索引达到零时,我们得到字符串的反转。

程序为:

def test_range(num):
   if num in range(0, 101):
      print(''%s is in range''%str(num))
   else:
      print(''%s is not in range''%str(num))

输出:

test_range(101)

101 不在范围内

为了测试特定范围内的任何数字,我们使用“if..in”方法和 else 条件。

程序为:

def string_test(s):

a = { ''Lower_Case'':0 , ''Upper_Case'':0} #intiail count of lower and upper
for ch in s: #for loop
   if(ch.islower()): #if-elif-else condition
      a[''Lower_Case''] = a[''Lower_Case''] + 1
   elif(ch.isupper()):
      a[''Upper_Case''] = a [''Upper_Case''] + 1
   else:
      pass

print(''String in testing is: '',s) #printing the statements.
print(''Number of Lower Case characters in String: '',a[''Lower_Case''])
print(''Number of Upper Case characters in String: '',a[''Upper_Case''])

输出:

string_test("Tutorials POINT")

正在测试的字符串是:Tutorials POINT

字符串中小写字符的数量:8

字符串中大写字符的数量:6

我们使用 .islower() 和 .isupper() 方法。我们初始化小写和大写的计数。使用 if 和 else 条件,我们计算小写和大写字符的总数。

下一步是什么?

接下来,您可以回顾一下您以前完成的作业,并确保您可以自信地谈论它们。如果您是应届毕业生,面试官并不期望您回答非常复杂的问题,而是要确保您的基础概念非常扎实。

其次,如果您无法回答一些问题,这并不重要,重要的是您回答的任何问题,都必须充满自信地回答。所以在面试中要充满自信。我们在 tutorialspoint 祝您面试顺利,并祝您未来的事业一切顺利。干杯 :-)

广告
© . All rights reserved.