附答案|最新Python面试题之Python基础(1)

附答案|最新Python面试题之Python基础(1)

写在之前

Python 面试的时候会涉及到很多的八股文,我准备连载一个新的系列【最新Python面试题】

这些面试题是我结合自身经验,以及搜集整理的企业面试真题,主要有以下几个方面:

  • Python基础
  • Python机制
  • Python面向对象
  • Python笔试题
  • Python算法
  • Django框架
  • Flask框架
  • 其他开源框架
  • Scrapy数据爬虫
  • Python正则式
  • Python数据分析
  • Pandas框架
  • Python拓展知识(数据结构,常见算法,数据库原理及调优,中间件…)

虽然这些是面试“八股文”,但是只会背答案与流畅的并能结合自身思考的回答,对于面试官来说还是有很大区别的。

所以除了在每道面试题后会提供仔细整理和验证后的答案以外,在每篇文章中会挑选一道难度高且重点的题目做详细的讲解

希望大家不但能知其然也可以知其所以然,在面试的时候让面试官眼前一亮,这样白花花的offer不就到手了嘛

每天会更新10道题左右,无论是准备面试还是自己学习,这份面试题绝对值得你去看

大家可以关注我,再关注我,使劲关注我,不要错过每天的更新~

在这里插入图片描述

1.阐述以下方法 @classmethod, @staticmethod, @property?

类方法classmethod
在python中,classmethod是内置的装饰器之一,它的作用如下
声明一个方法是类方法,可以不用创建实例对象就调用类方法,调用方式:类名.方法名,其中方法的参数self变成cls,cls的作用同self一样。

静态方法staticmethod
同样的,staticmethod也是python内置的装饰器之一,它的作用如下
声明一个方法是一个静态方法,可以不用创建实例对象就调用类方法,调用式:类名.方法名,其中方法的参数self可以去掉。

属性property
python中property一般有两个作用,
@property 将类的方法转为只读的类属性
property 重新实现一个属性的 getter 和 setter 方法

2.解释什么是lambda函数?它有什么好处?

什么是lambda函数:
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的匿名函数。 

使用lambda函数的好处:
1lambda函数比较轻便,即用即扔,很适合需要完成某一项简单功能,但是这个简单的功能只在此一处使用,连名字都很随意的情况下;
2lambda是匿名函数,一般用来给filtermapreduce这样的函数式编程服务;

3.Python里面如何实现tuple和list的转换?

# list转tuple 使用tuple函数
list_a = [1,2,3,4,5]
print(type(tuple(list_a)))

# tuple转list 使用list函数
tuple_b = (1,2,3,4,5)
print(type(list(tuple_b)))

4.阐述Python:except的用法和作用?

在Python中,tryexceptelsefinally 语句用于异常处理,它们允许程序在遇到错误时执行特定的代码块,而不是立即崩溃。下面是这些关键字的基本用法:

  1. try:尝试执行的代码块,可能会引发异常。
  2. except:如果try块中的代码引发了异常,except块将被执行。你可以指定一个或多个异常类型,以捕获并处理特定的异常。
  3. else:如果try块没有引发异常,else块将被执行。这允许你在没有错误的情况下执行一些代码。
  4. finally:无论是否发生异常,finally块中的代码都会执行。这通常用于清理操作,比如关闭文件或释放资源。

下面是这些关键字的一个简单示例:

try:
    # 尝试执行的代码
    result = 10 / 0
except ZeroDivisionError:
    # 如果发生了除以零的错误,则执行此块
    print("不能除以零!")
except Exception as e:
    # 捕获其他类型的异常
    print(f"发生了一个错误:{e}")
else:
    # 如果没有异常发生,则执行此块
    print("没有错误发生,结果是:", result)
finally:
    # 无论是否发生异常,都会执行此块
    print("这是 finally 块,总是会执行。")

5.阐述Python下range()函数的用法?

range(start, stop [,step]) ;start 指的是计数起始值,默认是 0;stop 指的是计数结束值,但不包括 stop ;step 是步长,默认为 1,不可以为 0range() 方法生成一段左闭右开的整数范围。

6.Python里面match()和search()的区别?

在Python中,match()和search()是两个用于正则表达式匹配的方法,它们来自于re模块(正则表达式模块)。它们之间的主要区别在于匹配的起始位置和匹配方式。

1.match()方法:
·match()方法只从字符串的开头进行匹配,只有在字符串的开头找到匹配时才会返回匹配对象,否则返回None。
·它相当于在正则表达式模式中加入了一个^,表示从字符串的开头开始匹配。

2.search()方法:
·search()方法会在整个字符串中搜索匹配,只要找到一个匹配,就会返回匹配对象,否则返回None。
·它相当于在正则表达式模式中没有加入任何特殊字符,表示在整个字符串中查找匹配。
下面通过代码演示来说明它们的区别:

7.如何在一个function里面设置一个全局的变量?

# 使用global关键字
x = 0  # 全局变量

def set_global():
    global x  # 指定x是全局变量
    x = 5

set_global()
print(x)  # 输出: 5

8.简述Python单引号,双引号,三引号的区别?

单引号和双引号:
单引号(')和双引号(")在大多数情况下可以互换使用,用于创建字符串。
它们之间的主要区别在于,如果你的字符串中包含单引号或双引号,你可以使用另一种引号来避免转义字符。

# 使用单引号
single_quoted = 'He said, "Hello, world!"'
# 使用双引号
double_quoted = "He said, 'Hello, world!'"

三引号可以是三个单引号(''')或三个双引号("""),用于多行字符串。
它们允许字符串跨越多行,而不需要使用转义字符(如\n)来表示换行。
三引号字符串可以包含单引号或双引号,而不需要转义,这在处理文档或代码等需要保留引号的文本时非常有用。

9.简述Python的函数参数传递?

所有的变量都可以理解是内存中一个对象的“引用”

这里记住的是类型是属于对象的,而不是变量。而对象有两种,“可更改”(mutable)与“不可更改”(immutable)对象。在python中,strings, tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象。(这就是这个问题的重点)
比如:
a = 1
def fun(a):
	a = 2
fun(a)
print a # 1

当一个引用传递给函数的时候,函数自动复制一份引用,这个函数里的引用和外边的引用已经无关.所以第一个例子里函数把引用指向了一个不可变对象,当函数返回的时候,外面的引用没半毛感觉.而第二个例子就不一样了,函数内的引用指向的是可变对象,对它的操作就和定位了指针地址一样,在内存里进行修改.

重点题详解

什么是Python字典推导式?

在编程中,字典是一个非常方便和实用的数据结构。它可以储存键值对,可以随时添加、删除和修改,并且可以通过键快速访问值。Python中的字典也是非常易用的。除了常规的定义和操作字典元素之外,我们还可以使用Python的字典推导式来快速构建字典。

什么是python字典推导式
字典推导式是一种简洁而优雅的语法,它允许我们通过使用单行代码快速创建一个新的字典。与列表推导式和集合推导式类似,字典推导式是在一组可迭代对象(比如列表、字符串、元组等)和一个表达式的基础上创建字典的。

字典推导式的语法如下:

{key_expression: value_expression for item in iterable if condition}
  • key_expression:字典的键。
  • value_expression:字典的值。
  • item:从iterable中迭代出的元素。
  • iterable:一个可迭代对象,比如列表、元组或另一个字典。
  • condition:一个可选的条件表达式,只有当条件为真时,key_expressionvalue_expression才会被添加到字典中。

下面是使用案例

# 假设我们有一个数字列表,我们想创建一个字典,其中包含每个数字及其平方
numbers = [1, 2, 3, 4, 5]
squares = {x: x**2 for x in numbers}

print(squares)  # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

另一个例子,如果我们想从一个列表的元素中创建一个字典,其中包含元素及其在列表中的位置:

# 给定一个单词列表,创建一个字典,其中包含单词和它们在列表中的位置
words = ['apple', 'banana', 'cherry']
word_positions = {word: index for index, word in enumerate(words)}

print(word_positions)  # 输出: {'apple': 0, 'banana': 1, 'cherry': 2}

更多资料干货、行业内幕 长期免费更新中!
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值