python常见面试题
举报
Xxy_1008
发表于 2024/09/29 15:55:34
2024/09/29
【摘要】 一、基础语法方面数据类型Python 中的基本数据类型有哪些?(答案:整数、浮点数、字符串、布尔值、列表、元组、字典、集合等)如何区分可变数据类型和不可变数据类型?请举例说明。(例如:列表是可变的,元组是不可变的;可变数据类型的值可以在原地修改,不可变数据类型一旦创建就不能修改,如果要修改需要重新创建对象)如何将一个字符串转换为数字类型?(可以使用int()或float()函数,如int('...
一、基础语法方面
-
数据类型
- Python 中的基本数据类型有哪些?(答案:整数、浮点数、字符串、布尔值、列表、元组、字典、集合等)
- 如何区分可变数据类型和不可变数据类型?请举例说明。(例如:列表是可变的,元组是不可变的;可变数据类型的值可以在原地修改,不可变数据类型一旦创建就不能修改,如果要修改需要重新创建对象)
- 如何将一个字符串转换为数字类型?(可以使用
int()
或float()
函数,如int('123')
将字符串 '123' 转换为整数类型)
-
控制流语句
- 解释 Python 中的
if - elif - else
语句的用法。(用于根据不同的条件执行不同的代码块,当if
条件不满足时,会依次判断elif
中的条件,直到找到满足的条件或者执行else
中的代码块)
- 如何使用
for
循环和while
循环?请分别举例说明。(for
循环用于遍历可迭代对象,如for i in range(5): print(i)
;while
循环在条件为真时重复执行代码块,如while count < 5: print(count); count += 1
)
-
函数定义与使用
- 如何定义一个 Python 函数?函数的参数有哪些类型?(可以使用
def
关键字定义函数,参数类型有位置参数、默认参数、可变参数(*args
)和关键字可变参数(**kwargs
)等)
- 解释 Python 中的匿名函数(
lambda
函数)及其用法。(lambda
函数是一种简洁的定义小函数的方式,例如lambda x: x**2
定义了一个计算平方的函数)
-
模块与包
- 如何导入一个 Python 模块?(可以使用
import
语句,如import math
,也可以使用from module import function
的形式,如from math import sqrt
)
- 什么是 Python 中的包?如何创建和使用包?(包是一种组织模块的方式,包含
__init__.py
文件的文件夹就是一个包,可以通过import package.module
的方式使用包中的模块)
二、数据结构相关
-
列表
- 如何在列表中添加、删除和修改元素?(添加元素可以使用
append()
、insert()
方法,删除元素可以使用remove()
、pop()
方法,修改元素可以直接通过索引赋值,如my_list = [1, 2, 3]; my_list[0]= 0
)
- 如何对列表进行排序?(可以使用
sorted()
函数或者列表自身的sort()
方法,如my_list = [3, 1, 2]; my_list.sort()
或者sorted_list = sorted(my_list)
)
-
字典
- 如何创建一个字典?如何访问字典中的值?(使用花括号
{}
创建字典,如my_dict = {'key1': 'value1', 'key2': 'value2'}
,可以通过键来访问值,如my_dict['key1']
)
- 如何遍历字典?(可以使用
for key in my_dict:
遍历键,或者使用for key, value in my_dict.items():
同时遍历键和值)
-
元组
- 元组和列表有什么区别?(元组是不可变的,而列表是可变的;元组在创建后不能修改元素,适用于存储不可变的数据集合)
- 在什么情况下会优先使用元组而不是列表?(当数据不需要修改,且希望防止意外修改时,如函数返回多个值时可以使用元组)
三、面向对象编程(OOP)
-
类与对象
- 如何定义一个 Python 类?如何创建类的实例?(使用
class
关键字定义类,如class MyClass:
,通过my_object = MyClass()
创建实例)
- 解释 Python 中的类属性和实例属性的区别。(类属性属于类本身,所有实例共享,实例属性属于每个实例独立拥有,例如
class MyClass: class_attr = 'common'; def __init__(self, instance_attr): self.instance_attr = instance_attr
)
-
继承与多态
- 如何在 Python 中实现类的继承?(使用
class ChildClass(ParentClass):
的形式)
- 解释多态在 Python 中的体现。(例如,不同的子类重写父类的方法,在调用时根据对象的实际类型执行相应的方法)
四、高级特性与应用
-
生成器与迭代器
- 什么是生成器?如何创建和使用生成器?(生成器是一种特殊的迭代器,可以使用函数中的
yield
语句创建,如def my_generator(): yield 1; yield 2
,可以使用for
循环遍历生成器)
- 解释迭代器的概念及其协议。(迭代器是实现了
__iter__
和__next__
方法的对象,用于逐个访问容器中的元素)
-
装饰器
- 什么是装饰器?如何编写一个简单的装饰器?(装饰器是一种用于修改函数或类行为的函数,可以在不修改原函数代码的基础上添加额外的功能,例如
def my_decorator(func): def wrapper(): print('Before function call'); func(); print('After function call'); return wrapper
,可以使用@my_decorator
来装饰函数)
-
文件操作
- 如何在 Python 中打开、读取、写入和关闭文件?(使用
open()
函数打开文件,如f = open('file.txt', 'r')
用于读取文件,f = open('file.txt', 'w')
用于写入文件,读取可以使用read()
、readline()
或readlines()
方法,写入可以使用write()
方法,最后使用f.close()
关闭文件)
-
异常处理
- 解释 Python 中的
try - except - finally
语句的用法。(try
块中放置可能出现异常的代码,except
块用于捕获特定类型的异常并处理,finally
块中的代码无论是否发生异常都会执行)
推荐
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)