Python面试中常见的基础问题有哪些?

2026-04-13 09:571阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2630个文字,预计阅读时间需要11分钟。

Python面试中常见的基础问题有哪些?

Q51. 使用`*args`和`kwargs`的含义:当不知道要向函数传递多少参数时,可以使用`*args`来接收任意数量的位置参数,而`kwargs`则用于接收任意数量的关键字参数。例如,如果我们向函数传递一个列表或元组,我们可以使用`*args`来处理这些参数。如下所示:

pythondef func(*args): for i in args: print(i)

func(3, 2, 1, 4, 7)

输出结果为:32147

在不知道应该传递多少参数时,这种方法非常有用。

Q51.请解释使用args和kwargs的含义

当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用*args:

def func(*args): for i in args: print(i) func(3,2,1,4,7) 3 2 1 4 7

在我们不知道该传递多少关键字参数时,使用**kwargs来收集关键字参数:

def func(**kwargs): for i in kwargs: print(i,kwargs[i]) func(a=1,b=2,c=7) a.1 b.2 c.7Q52.如何在Python中删除文件?

使用命令os.remove(filename)或os.unlink(filename)

Q53.解释如何从C访问用Python编写的模块?

您可以通过以下方法访问C中用Python编写的模块:

Module = = PyImport_ImportModule(“<modulename>”)Q54.在Python中使用//运算符?

它是一个Floor Divisionoperator,用于分割两个操作数,结果为商,只显示小数点前的数字。

例如,10 // 5 = 2和10.0 // 5.0 = 2.0。

Q55.怎么移除一个字符串中的前导空格?

字符串中的前导空格就是出现在字符串中第一个非空格字符前的空格。

我们使用方法Istrip()可以将它从字符串中移除。

&rsquo; Data123 '.lstrip()

结果:

'Data123 &rsquo;

最初的字符串当中既有前导字符也有后缀字符,调用Istrip()去除了前导空格,如果我们想去除后缀空格,可以使用rstrip()方法。

'Data123 '.rstrip() 'Data123'Q56.如何用Python输出一个Fibonacci数列?

a,b = 0, 1   while b<100:   print (b)   a, b = b, a+bQ57.在Python中怎样将字符串转换为整型变量?

如果字符串只含有数字字符,可以用函数int()将其转换为整数。

int(&lsquo;22&rsquo;)

我们检查一下变量类型:

type('22') <class'str'> type(int('22')) <class'int'>Q58.在Python中如何生成一个随机数?

要想生成随机数,我们可以从random模块中导入函数random()。

from random import random random() 0.013501571090371978

我们还可以使用函数randint(),它会用两个参数表示一个区间,返回该区间内的一个随机整数。

from random import randint randint(2,7) 4Q59.怎样将字符串中第一个字母大写?

最简单的方法就是用capitalize()方法。

'daxie'.capitalize() 'Daxie'Q60.如何检查字符串中所有的字符都为字母数字?

对于这个问题,我们可以使用isalnum()方法。

'DATA123'.isalnum() True 'DATA123!'.isalnum() False

我们还可以用其它一些方法:

'123'.isdigit()#检测字符串是否只由数字组成 True '123'.isnumeric()#只针对unicode对象 True 'data'.islower()#是否都为小写 True 'Data'.isupper()#是否都为大写 FalseQ61.什么是Python中的连接(concatenation)?

Python中的连接就是将两个序列连在一起,我们使用+运算符完成:

'22'+'33' ‘2233' [1,2,3]+[4,5,6] [1, 2,3, 4, 5, 6] (2,3)+(4) TypeError Traceback (most recent call last) <ipython-input-7-69a1660f2fc5> in <module> ----> 1 (2,3)+(4) TypeError: can only concatenate tuple (not "int") to tuple

这里运行出错,因为(4)被看作是一个整数,修改一下再重新运行:

(2,3)+(4,) (2, 3,4)Q62.什么是递归?

当一个函数在其调用过程中直接或间接地调用了自身时,这就是递归。但为了避免出现死循环,必须要有一个结束条件,举个例子:

def facto(n): if n==1: return 1 return n*facto(n-1) facto(5) 120Q63.什么是生成器?

生成器会生成一系列的值用于迭代,这样看它又是一种可迭代对象。

它是在for循环的过程中不断计算出下一个元素,并在适当的条件结束for循环。

我们定义一个能逐个“yield”值的函数,然后用一个for循环来迭代它。

def squares(n): i=1 while(i<=n): yield i**2 i+=1 for i in squares(5): print(i) 1 4 9 16 25Q64.什么是迭代器?

迭代器是访问集合元素的一种方式。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。

迭代器只能往前不会后退。我们使用inter()函数创建迭代器。

odds=iter([1,2,3,4,5]) #每次想获取一个对象时,我们就调用next()函数 next (odds) 1 next (odds) 2 next (odds) 3 next (odds) 4 next (odds) 5Q65.请说说生成器和迭代器之间的区别

1)在使用生成器时,我们创建一个函数;在使用迭代器时,我们使用内置函数iter()和next();

2)在生成器中,我们使用关键字&lsquo;yield&rsquo;来每次生成/返回一个对象;

3)生成器中有多少&lsquo;yield&rsquo;语句,你可以自定义;

生成器会在每次暂停循环时保存本地变量状态。迭代器只需要一个可迭代对象就能进行迭代,不需要使用局部变量

5)使用类可以实现你自己的迭代器,但无法实现生成器;

Python面试中常见的基础问题有哪些?

6)生成器运行速度快,语法简洁,更简单;

7)迭代器更能节约内存。

Q66.函数zip()的是干嘛的?

Python新手可能对这个函数不是很熟悉,zip()可以返回元组的迭代器。

list(zip([&lsquo;a&rsquo;,&lsquo;b&rsquo;,&lsquo;c&rsquo;],[1,2,3]))

[(&lsquo;a&rsquo;,1), (&lsquo;b&rsquo;, 2), (&lsquo;c&rsquo;, 3)]

在这里zip()函数对两个列表中的数据项进行了配对,并用它们创建了元组。

Q67.如何用Python找出你目前在哪个目录?

我们可以使用函数/方法getcwd(),从模块os中将其导入。

import os

os.getcwd()

&lsquo;C:\Users\37410\Desktop\代码&rsquo;

Q68.如何计算一个字符串的长度?

这个也比较简单,在我们想计算长度的字符串上调用函数len()即可。

len(&lsquo;Data 123&rsquo;)

8

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

从列表中删除并返回最后一个对象或obj。

list.pop(obj = list [-1])Q70.解释一些在Python中实现面向功能的编程的方法

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

1)filter()

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

list(filter(lambda x:x> 5,range(8))) [6,7] 2)map()

Map将函数应用于iterable中的每个元素。

list(map(lambda x:x ** 2,range(8))) [0,1,4,9,16,25,36,49] 3)reduce()

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

from functools import reduce reduce(lambda x,y:xy,[1,2,3,4,5]) -13Q71.编写一个Python程序来计算数字列表的总和

def list_sum(num_List):如果len(num_List)== 1: return num_List [0] else: return num_List [0] + list_sum(num_List [1:]) print(list_sum([3,4,5,6,11])) 29Q72.编写一个Python程序来读取文件中的随机行

import random def random_line(fname): lines = open(fname).read().splitlines() return random.choice(lines) print(random_line('test.txt'))Q73.编写一个Python程序来计算文本文件中的行数

def file_lengthy(fname): open(fname)as f: for i,l in enumerate(f): pass return i + 1 print(“file of lines:”,file_lengthy(“test.txt”))Q74.请写一个Python逻辑,计算一个文件中的大写字母数量

import os os.chdir('C:\Users\lifei\Desktop') with open('Today.txt') as today: count=0 for i in today.read(): if i.isupper(): count+=1 print(count)Q75.在Python中为数值数据集编写排序算法

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

list = ["1", "4", "0", "6", "9"] list = [int(i) for i in list] list.sort() print (list) Django有关Q76.请解释或描述一下Django的架构

对于Django框架遵循MVC设计,并且有一个专有名词:MVT,

M全拼为Model,与MVC中的M功能相同,负责数据处理,内嵌了ORM框架;

V全拼为View,与MVC中的C功能相同,接收HttpRequest,业务处理,返回HttpResponse;

T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html,内嵌了模板引擎

Q77.Django,Pyramid和Flask之间的差异

Flask是一个“微框架”,主要用于具有更简单要求的小型应用程序。

Pyramid适用于大型应用程序,具有灵活性,允许开发人员为他们的项目使用数据库,URL结构,模板样式等正确的工具。

Django也可以像Pyramid一样用于更大的应用程序。它包括一个ORM。

Q78.讨论Django架构

Django架构

开发人员提供模型,视图和模板,然后将其映射到URL,Django可以为用户提供服务。

Q79.解释如何在Django中设置数据库

Django使用SQLite作为默认数据库,它将数据作为单个文件存储在文件系统中。

如过你有数据库服务器-PostgreSQL,MySQL,Oracle,MSSQL-并且想要使用它而不是SQLite,那么使用数据库的管理工具为你的Django项目创建一个新的数据库。

无论哪种方式,在您的(空)数据库到位的情况下,剩下的就是告诉Django如何使用它。

这是项目的settings.py文件的来源。

我们将以下代码行添加到setting.py文件中:

DATABASES ={&lsquo;default&rsquo;: {&lsquo;ENGINE&rsquo;: &lsquo;django.db.backends.sqlite3&rsquo;, &lsquo;NAME&rsquo;: os.path.join(BASE_DIR, &lsquo;db.sqlite3&rsquo;),

Q80.举例说明如何在Django中编写VIEW?

这是我们在Django中使用write一个视图的方法:

from django.www.1234xp.com/binhai.html 复制请保留原URL】

本文共计2630个文字,预计阅读时间需要11分钟。

Python面试中常见的基础问题有哪些?

Q51. 使用`*args`和`kwargs`的含义:当不知道要向函数传递多少参数时,可以使用`*args`来接收任意数量的位置参数,而`kwargs`则用于接收任意数量的关键字参数。例如,如果我们向函数传递一个列表或元组,我们可以使用`*args`来处理这些参数。如下所示:

pythondef func(*args): for i in args: print(i)

func(3, 2, 1, 4, 7)

输出结果为:32147

在不知道应该传递多少参数时,这种方法非常有用。

Q51.请解释使用args和kwargs的含义

当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用*args:

def func(*args): for i in args: print(i) func(3,2,1,4,7) 3 2 1 4 7

在我们不知道该传递多少关键字参数时,使用**kwargs来收集关键字参数:

def func(**kwargs): for i in kwargs: print(i,kwargs[i]) func(a=1,b=2,c=7) a.1 b.2 c.7Q52.如何在Python中删除文件?

使用命令os.remove(filename)或os.unlink(filename)

Q53.解释如何从C访问用Python编写的模块?

您可以通过以下方法访问C中用Python编写的模块:

Module = = PyImport_ImportModule(“<modulename>”)Q54.在Python中使用//运算符?

它是一个Floor Divisionoperator,用于分割两个操作数,结果为商,只显示小数点前的数字。

例如,10 // 5 = 2和10.0 // 5.0 = 2.0。

Q55.怎么移除一个字符串中的前导空格?

字符串中的前导空格就是出现在字符串中第一个非空格字符前的空格。

我们使用方法Istrip()可以将它从字符串中移除。

&rsquo; Data123 '.lstrip()

结果:

'Data123 &rsquo;

最初的字符串当中既有前导字符也有后缀字符,调用Istrip()去除了前导空格,如果我们想去除后缀空格,可以使用rstrip()方法。

'Data123 '.rstrip() 'Data123'Q56.如何用Python输出一个Fibonacci数列?

a,b = 0, 1   while b<100:   print (b)   a, b = b, a+bQ57.在Python中怎样将字符串转换为整型变量?

如果字符串只含有数字字符,可以用函数int()将其转换为整数。

int(&lsquo;22&rsquo;)

我们检查一下变量类型:

type('22') <class'str'> type(int('22')) <class'int'>Q58.在Python中如何生成一个随机数?

要想生成随机数,我们可以从random模块中导入函数random()。

from random import random random() 0.013501571090371978

我们还可以使用函数randint(),它会用两个参数表示一个区间,返回该区间内的一个随机整数。

from random import randint randint(2,7) 4Q59.怎样将字符串中第一个字母大写?

最简单的方法就是用capitalize()方法。

'daxie'.capitalize() 'Daxie'Q60.如何检查字符串中所有的字符都为字母数字?

对于这个问题,我们可以使用isalnum()方法。

'DATA123'.isalnum() True 'DATA123!'.isalnum() False

我们还可以用其它一些方法:

'123'.isdigit()#检测字符串是否只由数字组成 True '123'.isnumeric()#只针对unicode对象 True 'data'.islower()#是否都为小写 True 'Data'.isupper()#是否都为大写 FalseQ61.什么是Python中的连接(concatenation)?

Python中的连接就是将两个序列连在一起,我们使用+运算符完成:

'22'+'33' ‘2233' [1,2,3]+[4,5,6] [1, 2,3, 4, 5, 6] (2,3)+(4) TypeError Traceback (most recent call last) <ipython-input-7-69a1660f2fc5> in <module> ----> 1 (2,3)+(4) TypeError: can only concatenate tuple (not "int") to tuple

这里运行出错,因为(4)被看作是一个整数,修改一下再重新运行:

(2,3)+(4,) (2, 3,4)Q62.什么是递归?

当一个函数在其调用过程中直接或间接地调用了自身时,这就是递归。但为了避免出现死循环,必须要有一个结束条件,举个例子:

def facto(n): if n==1: return 1 return n*facto(n-1) facto(5) 120Q63.什么是生成器?

生成器会生成一系列的值用于迭代,这样看它又是一种可迭代对象。

它是在for循环的过程中不断计算出下一个元素,并在适当的条件结束for循环。

我们定义一个能逐个“yield”值的函数,然后用一个for循环来迭代它。

def squares(n): i=1 while(i<=n): yield i**2 i+=1 for i in squares(5): print(i) 1 4 9 16 25Q64.什么是迭代器?

迭代器是访问集合元素的一种方式。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。

迭代器只能往前不会后退。我们使用inter()函数创建迭代器。

odds=iter([1,2,3,4,5]) #每次想获取一个对象时,我们就调用next()函数 next (odds) 1 next (odds) 2 next (odds) 3 next (odds) 4 next (odds) 5Q65.请说说生成器和迭代器之间的区别

1)在使用生成器时,我们创建一个函数;在使用迭代器时,我们使用内置函数iter()和next();

2)在生成器中,我们使用关键字&lsquo;yield&rsquo;来每次生成/返回一个对象;

3)生成器中有多少&lsquo;yield&rsquo;语句,你可以自定义;

生成器会在每次暂停循环时保存本地变量状态。迭代器只需要一个可迭代对象就能进行迭代,不需要使用局部变量

5)使用类可以实现你自己的迭代器,但无法实现生成器;

Python面试中常见的基础问题有哪些?

6)生成器运行速度快,语法简洁,更简单;

7)迭代器更能节约内存。

Q66.函数zip()的是干嘛的?

Python新手可能对这个函数不是很熟悉,zip()可以返回元组的迭代器。

list(zip([&lsquo;a&rsquo;,&lsquo;b&rsquo;,&lsquo;c&rsquo;],[1,2,3]))

[(&lsquo;a&rsquo;,1), (&lsquo;b&rsquo;, 2), (&lsquo;c&rsquo;, 3)]

在这里zip()函数对两个列表中的数据项进行了配对,并用它们创建了元组。

Q67.如何用Python找出你目前在哪个目录?

我们可以使用函数/方法getcwd(),从模块os中将其导入。

import os

os.getcwd()

&lsquo;C:\Users\37410\Desktop\代码&rsquo;

Q68.如何计算一个字符串的长度?

这个也比较简单,在我们想计算长度的字符串上调用函数len()即可。

len(&lsquo;Data 123&rsquo;)

8

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

从列表中删除并返回最后一个对象或obj。

list.pop(obj = list [-1])Q70.解释一些在Python中实现面向功能的编程的方法

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

1)filter()

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

list(filter(lambda x:x> 5,range(8))) [6,7] 2)map()

Map将函数应用于iterable中的每个元素。

list(map(lambda x:x ** 2,range(8))) [0,1,4,9,16,25,36,49] 3)reduce()

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

from functools import reduce reduce(lambda x,y:xy,[1,2,3,4,5]) -13Q71.编写一个Python程序来计算数字列表的总和

def list_sum(num_List):如果len(num_List)== 1: return num_List [0] else: return num_List [0] + list_sum(num_List [1:]) print(list_sum([3,4,5,6,11])) 29Q72.编写一个Python程序来读取文件中的随机行

import random def random_line(fname): lines = open(fname).read().splitlines() return random.choice(lines) print(random_line('test.txt'))Q73.编写一个Python程序来计算文本文件中的行数

def file_lengthy(fname): open(fname)as f: for i,l in enumerate(f): pass return i + 1 print(“file of lines:”,file_lengthy(“test.txt”))Q74.请写一个Python逻辑,计算一个文件中的大写字母数量

import os os.chdir('C:\Users\lifei\Desktop') with open('Today.txt') as today: count=0 for i in today.read(): if i.isupper(): count+=1 print(count)Q75.在Python中为数值数据集编写排序算法

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

list = ["1", "4", "0", "6", "9"] list = [int(i) for i in list] list.sort() print (list) Django有关Q76.请解释或描述一下Django的架构

对于Django框架遵循MVC设计,并且有一个专有名词:MVT,

M全拼为Model,与MVC中的M功能相同,负责数据处理,内嵌了ORM框架;

V全拼为View,与MVC中的C功能相同,接收HttpRequest,业务处理,返回HttpResponse;

T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html,内嵌了模板引擎

Q77.Django,Pyramid和Flask之间的差异

Flask是一个“微框架”,主要用于具有更简单要求的小型应用程序。

Pyramid适用于大型应用程序,具有灵活性,允许开发人员为他们的项目使用数据库,URL结构,模板样式等正确的工具。

Django也可以像Pyramid一样用于更大的应用程序。它包括一个ORM。

Q78.讨论Django架构

Django架构

开发人员提供模型,视图和模板,然后将其映射到URL,Django可以为用户提供服务。

Q79.解释如何在Django中设置数据库

Django使用SQLite作为默认数据库,它将数据作为单个文件存储在文件系统中。

如过你有数据库服务器-PostgreSQL,MySQL,Oracle,MSSQL-并且想要使用它而不是SQLite,那么使用数据库的管理工具为你的Django项目创建一个新的数据库。

无论哪种方式,在您的(空)数据库到位的情况下,剩下的就是告诉Django如何使用它。

这是项目的settings.py文件的来源。

我们将以下代码行添加到setting.py文件中:

DATABASES ={&lsquo;default&rsquo;: {&lsquo;ENGINE&rsquo;: &lsquo;django.db.backends.sqlite3&rsquo;, &lsquo;NAME&rsquo;: os.path.join(BASE_DIR, &lsquo;db.sqlite3&rsquo;),

Q80.举例说明如何在Django中编写VIEW?

这是我们在Django中使用write一个视图的方法:

from django.www.1234xp.com/binhai.html 复制请保留原URL】