竹笋

首页 » 问答 » 问答 » Python面试的问题和答案
TUhjnbcbe - 2024/7/8 2:19:00

1.比较Java和Python

2.什么是Python?

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

3.PYTHONPATH环境变量的目的是什么?

PYTHONPATH-它的作用类似于PATH。此变量告诉Python解释器在何处找到导入程序的模块文件。它应该包括Python源库目录和包含Python源代码的目录。PYTHONPATH有时由Python安装程序预设.

4.PYTHONSTARTUP,PYTHONCASEOK,PYTHONHOME,PYTHONSTARTUP环境变量的目的是什么?

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

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

PYTHONHOME-它是另一种模块搜索路径。它通常嵌入在PYTHONSTARTUP或PYTHONPATH目录中,以便于切换模块库。

5.Python中支持的数据类型是什么?

Python有五种标准数据类型-

数字串名单元组字典

6.列表和元组有什么区别?

7.如何在Python中管理内存?

Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员无权访问此私有堆,解释器负责处理此私有堆。Python对象的Python堆空间分配由Python内存管理器完成。核心API提供了一些程序员编写代码的工具。Python还有一个内置的垃圾收集器,它可以回收所有未使用的内存并释放内存并使其可用于堆空间。

8.用一个例子解释Python中的继承。

继承允许一个类获得另一个类的所有成员(比如属性和方法)。继承提供代码可重用性,使创建和维护应用程序变得更容易。我们继承的类称为超类,继承的类称为派生/子类。

它们是Python支持的不同类型的继承:

单一继承-派生类获取单个超类的成员。多级继承-从基类base1继承的派生类d1,d2继承自base2。分层继承-从一个基类可以继承任意数量的子类多重继承-派生类从多个基类继承。

9.每当Python退出时,为什么不是所有的内存都被解除分配?

每当Python退出时,尤其是那些对其他对象具有循环引用的Python模块或者从全局名称空间引用的对象并不总是被解除分配或释放。无法解除分配C库保留的那些内存部分。退出时,由于拥有自己的高效清理机制,Python会尝试取消分配/销毁其他所有对象。

10.Python中的字典是什么?

Python中的内置数据类型称为字典。它定义了键和值之间的一对一关系。字典包含一对键及其对应的值。字典由键索引。

我们来举个例子:

以下示例包含一些键。国家,资本和下午。它们的相应值分别是印度,德里和莫迪。

字典={国家:印度,资本:德里,PM:莫迪}

打印字典[国家]

11.写一个单行,用于计算文件中大写字母的数量。即使文件太大而无法放入内存,您的代码也应该可以正常工作。

我们先写一个多行解决方案,然后将其转换为一个班轮代码。

1打开(SOME_LARGE_FILE)为fh:

2count=03text=fh.read()4表示文本中的字符:5ifcharacter.isupper():6count+=1

12.在Python中为数值数据集编写排序算法。

以下代码可用于在Python中对列表进行排序:

list=[“1”,“4”,“0”,“6”,“9”]

list=[int(i)foriinlist]

list.sort()

打印(列表)

13.你将如何扭转名单?

list.reverse()-反转列表对象。

14.如何从列表中删除最后一个对象?

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

15.什么是负指数,为什么使用它们?

Python中的序列是索引的,它由正数和负数组成。积极的数字使用0作为第一个索引,1作为第二个索引,过程继续进行。

负数的索引从-1开始,表示序列中的最后一个索引,-2作为倒数第二个索引,序列像正数一样前进。

负索引用于从字符串中删除任何换行符,并允许该字符串除了作为S[:-1]给出的最后一个字符。负索引还用于显示索引以正确的顺序表示字符串。

16.解释Python中“re”模块的split(),sub(),subn()方法。

为了修改字符串,Python的“re”模块提供了3种方法。他们是:

split()-使用正则表达式模式将给定字符串“拆分”到列表中。sub()-查找正则表达式模式匹配的所有子字符串,然后用不同的字符串替换它们subn()-它类似于sub(),并且还返回新字符串和no,替换。

17.range和xrange有什么区别?

在大多数情况下,xrange和range在功能方面完全相同。它们都提供了一种生成整数列表供您使用的方法,但是您可以随意使用。唯一的区别是range返回一个Python列表对象,xrange返回一个xrange对象。

这意味着xrange实际上并不像运行时那样在运行时生成静态列表。它使用称为yielding的特殊技术根据需要创建值。该技术与一种称为生成器的对象一起使用。这意味着,如果你有一个非常巨大的范围,你想生成一个列表,比如10亿,xrange就是要使用的功能。

如果你有一个真正的内存敏感系统,例如你正在使用的手机,尤其如此,因为范围将使用尽可能多的内存来创建整数数组,这可能导致内存错误并导致崩溃程序。这是一个记忆饥饿的野兽。

18.什么是酸洗和去除?

Pickle模块接受任何Python对象并将其转换为字符串表示形式,并使用dump函数将其转储到文件中,此过程称为pickling。从存储的字符串表示中检索原始Python对象的过程称为unpickling。

19.Python中的map函数是什么?

map函数执行作为第一个参数给出的函数,作为第二个参数给出的iterable的所有元素。如果给定的函数包含多于1个参数,则给出了许多迭代。#Tollow链接以了解更多类似的功能

20.如何在NumPy数组中获得N个最大值的索引?

我们可以使用以下代码获取NumPy数组中N个最大值的索引:importnumpyasnp

arr=np.array([1,3,2,4,5])

打印(arr.argsort()[-3:][::-1])

21.什么是Python模块?

模块是一个Python脚本,通常包含import语句,函数,类和变量定义,以及Python可运行代码,它“生活”文件的扩展名为“.py”。zip文件和DLL文件也可以是模块。在模块中,您可以将模块名称称为存储在全局变量名称中的字符串。

22.在Python中命名与文件相关的模块?

Python为库/模块提供了一些函数,使您可以在文件系统上操作文本文件和二进制文件。使用它们,您可以创建文件,更新其内容,复制和删除文件。这些库是:os,os.path和shutil。

这里,os和os.path-模块包括用于访问文件系统的函数

shutil-module使您可以复制和删除文件。

23.解释使用with声明?

在python中,通常“with”语句用于打开文件,处理文件中存在的数据,还可以在不调用close()方法的情况下关闭文件。“with”语句通过提供清理活动使异常处理更简单。

一般形式:

使用open(“filename”,“mode”)作为file-var:

处理声明

注意:无需通过在file-var.close()上调用close()来关闭文件.

24.解释Python支持的所有文件处理模式?

Python允许您以三种模式之一打开文件。他们是:

通过分别指定标志“r”,“w”,“rw”,“a”,只读模式,只写模式,读写模式和附加模式。

通过指定选项“t”,可以在上述任何一种模式中打开文本文件

“r”,“w”,“rw”和“a”,以便前面的模式变为“rt”,“wt”,“rwt”和“at”。二进制文件可以在任何一个中打开上述模式通过指定选项“b”以及“r”,“w”,“rw”和“a”使得前面的模式变为“rb”,“wb”,“rwb”,“ab”。

25.Python支持多少种序列?这些是什么?

Python支持7种序列类型。它们是str,list,tuple,unicode,bytearray,xrange和buffer。其中xrange在python3.5.X中已弃用。

26.你如何在Python中执行模式匹配?说明

正则表达式/RE/正则表达式使我们能够指定可以匹配给定字符串的特定“部分”的表达式。例如,我们可以定义一个正则表达式来匹配单个字符或数字,电话号码或电子邮件地址等.Python的“re”模块提供正则表达式模式,并从Python2.5的更高版本中引入。“re”模块提供搜索文本字符串的方法,或者替换文本字符串以及基于定义的模式拆分文本字符串的方法。

27.如何以相反的顺序显示文本文件的内容?

将给定文件转换为列表。使用reversed()反转列表例如:forreverseinreverse(list(open(“file-name”,“r”))):打印(行)

28.NumPy和SciPy有什么区别?

在理想的世界中,NumPy只包含数组数据类型和最基本的操作:索引,排序,整形,基本元素智能函数等。所有数字代码都将驻留在SciPy中。但是,NumPy的一个重要目标是兼容性,因此NumPy试图保留其前任任何一个支持的所有功能。因此,NumPy包含一些线性代数函数,即使它们更恰当地属于SciPy。无论如何,SciPy包含更多全功能版本的线性代数模块,以及许多其他数值算法。如果你使用python进行科学计算,你应该安装NumPy和SciPy。大多数新功能属于SciPy而非NumPy。

29.以下哪项是无效陈述?

a)abc=1,,

b)abc=123

c)a,b,c=1,2,3

d)a_b_c=1,,

答案:b

30.以下产出是什么?尝试:如果1!=1:加注

a)发生了一些错误

b)没有发生一些错误

c)无效代码

d)以上都不是

答案:C

31.假设list1是[2,33,,14,25],什么是list1[-1]?

25

32.要打开文件c:\scores.txt进行写入?

fileWriter=open(“c:\\scores.txt”,“w”)

33.为统计,数值和科学计算命名一些Python模块?

numPy-此模块提供数组/矩阵类型,它对在数组上进行计算很有用。scipy-这个模块提供了进行数值积分,求解微分方程等的方法.pylab是一个用于生成和保存图的模块

34.什么是TkInter?

TkInter是Python库。它是GUI开发的工具包。它为GUI应用程序中使用的各种GUI工具或小部件(如按钮,标签,文本框,单选按钮等)提供支持。它们的共同属性包括尺寸,颜色,字体,光标等。

35.Python面向对象吗?什么是面向对象编程?

是。Python是面向对象的编程语言。OOP是基于类和被称为对象的类的实例的编程范例。OOP的特点是:

封装,数据抽象,继承,多态。

36.什么是多线程?举个例子。

这意味着通过调用多个线程同时运行多个不同的程序。进程中的多个线程使用主线程引用数据空间,并且它们可以相互通信以更容易地共享信息。线程是轻量级进程并且具有较少的内存开销。线程可以仅用于快速任务,如计算结果,也可以在主程序运行时在后台运行其他进程。

37.Python是否支持Java中的接口?讨论。

Python不提供Java中的接口。抽象基类(ABC)及其功能由Python的“abc”模块提供。抽象基类是一种机制,用于指定其实现子类必须实现哪些方法。ABCc的使用提供了一种关于方法及其预期行为的“理解”。该模块从Python2.7版本开始提供。

38.什么是Accessor,mutators,

property?

访问器和变换器通常被称为“Java”之类的语言中的getter和setter。例如,如果x是用户定义的类的属性,则该类将具有名为setX()和getX()的方法。Python有一个

property“装饰器”,允许你使用adgetters和setter来访问类的属性。

39.区分append()和extend()方法。

append()和extend()方法都是list的方法。这些方法用于添加列表末尾的元素。

append(element)-在调用此方法的列表末尾添加给定元素。

extend(another-list)-在列表的末尾添加另一个列表的元素,称为extend方法。

40.列举一些用于在Python中实现面向功能的编程的方法?

Python支持方法(在Python3中称为迭代器),例如filter(),map()和reduce(),当您需要迭代列表中的项目,创建字典或提取子集时,它们非常有用。一个列表。

filter()-使您能够基于条件逻辑提取值的子集。

map()-它是一个内置函数,它将函数应用于iterable中的每个项目。

reduce()-重复执行序列的成对减少,直到计算出单个值。

41.以下产出是什么?

x=[ab,cd]print(len(map(list,x)))

由于map没有len(),因此发生TypeError。

42.以下内容的输出是什么?

x=[ab,cd]print(len(list(map(list,x))))

说明:每个字符串的长度为2。

43.以下哪项不是创建集合的正确语法?

a)设置([[1,2],[3,4]])b)设置([1,2,2,3,4])c)设置((1,2,3,4))d){1,2,3,4}答案:a

Explanation:为set设置的参数必须是可迭代的。

44.解释一些在Python中实现面向功能的编程的方法。

有时,当我们想要遍历列表时,一些方法会派上用场。

过滤()过滤器允许我们根据条件逻辑过滤一些值。

list(filter(lambdax:x5,range(8)))

[6,7]

地图()Map将函数应用于iterable中的每个元素。

list(map(lambdax:x**2,range(8)))

[0,1,4,9,16,25,36,49]

降低()在我们达到单个值之前,Reduce会反复减少序列顺序

来自functoolsimportreduce

reduce(lambdax,y:xy,[1,2,3,4,5])

-13

45.解释PythonFlask中的数据库连接?

Flask支持数据库驱动的应用程序(RDBS)。这样的系统需要创建一个模式,这需要将shema.sql文件传递给sqlite3命令。因此,您需要安装sqlite3命令才能在Flask中创建或启动数据库。

Flask允许以三种方式请求数据库

before_request():在请求之前调用它们并且不传递任何参数after_request():在请求后调用它们并传递将发送到客户端的响应teardown_request():在引发异常时调用它们,并且不保证响应。在构建响应之后调用它们。不允许它们修改请求,并忽略它们的值。

46.编写一个Python函数来检查传递的字符串是否是回文结构?注意:回文是一个单词,短语或序列,向前读取相同的内容,例如,女士或护士。

defisPalindrome(string):left_pos=0right_pos=len(string)-1

而right_pos=left_pos:ififstring[left_pos]==string[right_pos]:returnFalseleft_pos+=1right_pos-=1returnprintprint(isPalindrome(aza))

47.编写一个Python程序来计算数字列表的总和。

deflist_sum(num_List):如果len(num_List)==1:returnnum_List[0]else:returnnum_List[0]+list_sum(num_List[1:])

print(list_sum([2,4,5,6,7]))

样本输出:

24

48.如何通过Python代码从MySQL数据库中的表中检索数据?说明。

将MySQLdb模块导入为:importMySQLdb建立与数据库的连接。db=MySQLdb.connect(“host”=“localhost”,“database-user”=“user-name”,“password”=“password”,“database-name”=“database”)在建立的连接上初始化游标变量:c1=db.cursor()通过定义所需的查询字符串来检索信息。s=“选择*来自dept”使用fetch()方法获取数据并打印它。data=c1.fetch(s)关闭数据库连接。close()

49.编写一个Python程序来读取文件中的随机行。

importrandomdefrandom_line(fname):lines=open(fname).read()。splitlines()returnrandom.choice(lines)print(random_line(test.txt))

50.编写一个Python程序来计算文本文件中的行数。

deffile_lengthy(fname):open(fname)为f:fori,linenumerate(f):passreturni+1print(“fileoflines:”,file_lengthy(“test.txt”))

1
查看完整版本: Python面试的问题和答案