视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
python基础练习题目
2025-09-29 00:20:12 责编:小OO
文档
python基础练习测试题

1、列表和元组之间的区别是?

答:二者的主要区别是列表是可变的,而元组是不可变的。举个例子,如下所示:

>>> mylist=[1,3,3]

>>> mylist[1]=2

>>> mytuple=(1,3,3)

>>> mytuple[1]=2

Traceback (most recent call last):

File "", line 1, in

mytuple[1]=2

会出现以下报错:

TypeError: ‘tuple’ object does not support item assignment

关于列表和元组的更多内容,可以查看这里:

从Q4到Q20都是针对新手的Python面试基础试题,不过有经验的人也可以看看这些问题,复习一下基础概念。

2、 解释一下Python中的三元运算子?

答:不像C++,我们在Python中没有?:,但我们有这个:

[on true] if [expression] else [on false]

如果表达式为True,就执行[on true]中的语句。否则,就执行[on false]中的语句。

下面是使用它的方法:

>>> a,b=2,3

>>> min=a if a>>> min

运行结果:2

>>> print("Hi") if a运行结果:Hi

3、在Python中如何实现多线程?

答:一个线程就是一个轻量级进程,多线程能让我们一次执行多个线程。我们都知道,Python是多线程语言,其内置有多线程工具包。

Python中的GIL(全局解释器锁)确保一次执行单个线程。一个线程保存GIL并在将其传递给下个线程之前执行一些操作,这会让我们产生并行运行的错觉。但实际上,只是线程在CPU上轮流运行。当然,所有的传递会增加程序执行的内存压力。

4、解释一下Python中的继承?

答:当一个类继承自另一个类,它就被称为一个子类/派生类,继承自父类/基类/超类。它会继承/获取所有类成员(属性和方法)。

继承能让我们重新使用代码,也能更容易的创建和维护应用。Python支持如下种类的继承:

单继承:一个类继承自单个基类

多继承:一个类继承自多个基类

多级继承:一个类继承自单个基类,后者则继承自另一个基类

分层继承:多个类继承自单个基类

混合继承:两种或多种类型继承的混合

5、什么是Flask?

答:Flask是Python编写的一款轻量级Web应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。Flask使用 BSD 授权。其中两个环境依赖是Werkzeug和jinja2,这意味着它不需要依赖外部库。正因如此,我们将其称为轻量级框架。

Flask会话使用签名cookie让用户查看和修改会话内容。它会记录从一个请求到另一个请求的信息。不过,要想修改会话,用户必须有密钥Flask.secret_key。

6、在Python中是如何管理内存的?

答:Python有一个私有堆空间来保存所有的对象和数据结构。作为开发者,我们无法访问它,是解释器在管理它。但是有了核心API后,我们可以访问一些工具。Python内存管理器控制内存分配。

另外,内置垃圾回收器会回收使用所有的未使用内存,所以使其适用于堆空间。

7、解释Python中的help()和dir()函数

答:Help()函数是一个内置函数,用于查看函数或模块用途的详细说明:

>>> import copy

>>> help(copy.copy)

运行结果为:

Help on function copy in module copy:

copy(x)

 Shallow copy operation on arbitrary Python objects.

 See the module’s __doc__ string for more info.

Dir()函数也是Python内置函数,dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。

以下实例展示了 dir 的使用方法:

>>> dir(copy.copy)

运行结果为:

[‘__annotations__’, ‘__call__’, ‘__class__’, ‘__closure__’, ‘__code__’, ‘__defaults__’, ‘__delattr__’, ‘__dict__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__get__’, ‘__getattribute__’, ‘__globals__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__init_subclass__’, ‘__kwdefaults__’, ‘__le__’, ‘__lt__’, ‘__module__’, ‘__name__’, ‘__ne__’, ‘__new__’, ‘__qualname__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’]

8、当退出Python时,是否释放全部内存?

答:结果是No。循环引用其它对象或引用自全局命名空间的对象的模块,在Python退出时并非完全释放。

另外,也不会释放C库保留的内存部分。

9、什么是猴子补丁?

答:在运行期间动态修改一个类或模块。

>>> class A:

    def func(self):

        print("Hi")

>>> def monkey(self):

print "Hi, monkey"

>>> m.A.func = monkey

>>> a = m.A()

>>> a.func()

运行结果为:

Hi, Monkey

10、Python中的字典是什么?

答:字典是C++和Java等编程语言中所没有的东西,它具有键值对。

>>> roots={25:5,16:4,9:3,4:2,1:1}

>>> type(roots)

>>> roots[9]

运行结果为:

3

字典是不可变的,我们也能用一个推导式来创建它。

>>> roots={x**2:x for x in range(5,0,-1)}

>>> roots

运行结果:

{25: 5, 16: 4, 9: 3, 4: 2, 1: 1}

11、请解释使用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.7

12、请写一个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)

运行结果:

26

13、什么是负索引?

答:我们先创建这样一个列表:

>>> mylist=[0,1,2,3,4,5,6,7,8]

负索引和正索引不同,它是从右边开始检索。

>>> mylist[-3]

运行结果:

6

它也能用于列表中的切片:

>>> mylist[-6:-1]

结果:

[3, 4, 5, 6, 7]

14、如何以就地操作方式打乱一个列表的元素?

答:为了达到这个目的,我们从random模块中导入shuffle()函数。

>>> from random import shuffle

>>> shuffle(mylist)

>>> mylist

复制代码

运行结果:

[3, 4, 8, 0, 5, 7, 6, 2, 1]

15、解释Python中的join()和split()函数?

答:Join()能让我们将指定字符添加至字符串中。

>>> ','.join('12345')

运行结果:

‘1,2,3,4,5’

Split()能让我们用指定字符分割字符串。

>>> '1,2,3,4,5'.split(',')

运行结果:

[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

16、Python区分大小写吗?

答:如果能区分像myname和Myname这样的标识符,那么它就是区分大小写的。也就是说它很在乎大写和小写。我们可以用Python试一试:

>>> myname='Ayushi'

>>> Myname

Traceback (most recent call last):

File "", line 1, in

运行结果:

Myname

NameError: name ‘Myname’ is not defined

可以看到,这里出现了NameError,所以Python是区分大小写的。下载本文

显示全文
专题