python面试题(1~10)

1、列表(list)和元组(tuple)有什么区别?

①列表是不可变的,创建后可以对其进行修改。元组是不可变的,元组一旦创建,就不能对其进行修改。

②列表表示的顺序,它们是有序序列,通常是同一类型的对象。比如说按创建日期排序的所有用户名,如["Seth", "Ema", "Eli"]。元组表示的是结构。可以用来存储不同数据类型的元素。比如内存中的数据库记录,如(2, "Ema", "2020--04--16")(#id, 名称,创建日期)。

2、如何进行字符串插值?

①格式化字符串 : 使用百分号(%)进行字符串格式化。例如,%d表示整数,%f表示浮点数,%s表示字符串等。

python 复制代码
name = "Alice"
age = 30
message = "My name is %s and I am %d years old." % (name, age)
print(message)

②format()方法 : 使用format()方法将要插入的值作为参数传递给字符串中的占位符{}

python 复制代码
name = "Bob"
age = 25
message = "My name is {} and I am {} years old.".format(name, age)
print(message)

③f-string (Python 3.6及以上版本): 使用f-string可以直接在字符串前加上fF,然后在字符串中使用花括号 {} 插入变量或表达式。

python 复制代码
name = "Charlie"
age = 20
message = f"My name is {name} and I am {age} years old."
print(message)

3、'is'和'=='有什么区别?

is用来检查对象的标识(id),而==用来检查两个对象是否相等。

4、什么是装饰器(decorator)?

装饰器允许通过将现有函数传递给装饰器,从而向现有函数添加一些额外的功能,该装饰器将执行现有函数的功能和添加的额外功能。

Python中的装饰器-CSDN博客

5、解释Range函数。

①作用:Range函数可以用来创建一个整数列表,一般用在for循环中。它有3种使用方法。

②参数:Range函数可以接受1到3个参数,参数必须是整数。

③用法

1.range(stop):生成从0到参数"stop"之间的整数。

i for i in range(10)\] ==\> \[0, 1, 2, 3, 4, 5, 6, 7, 8, 9

2.range(start, stop) : 生成从参数"start"到"stop"之间的整数

i for i in range(2,10)\] ==\> \[2, 3, 4, 5, 6, 7, 8, 9

3.range(start, stop, step):以参数"step"为步长,生成从"start"到"stop"之间的整数。

i for i in range(2,10,2)\] ==\> \[2, 4, 6, 8

6、定义一个名为car的类,它有两个属性:"color"和"speed"。然后创建一个实例并返回"speed"。

python 复制代码
class Car : 
    def __init__(self, color, speed): 
        self.color = color 
        self.speed = speed

car = Car('red','100mph')
car.speed   #=> '100mph'

7、Python中的实例方法、静态方法和类方法有什么区别?

实例方法:接受self参数,并且与类的特定实例相关。

静态方法:使用装饰器 @staticmethod,与特定实例无关,并且是自包含的(不能修改类或实例的属性)。

类方法:接受cls参数,并且可以修改类本身。

python 复制代码
class CoffeeShop: 

    specialty = 'espresso'
    def __init__(self, coffee_price): 
        self.coffee_price = coffee_price
    
    # 实例方法 
    def make_coffee(self): 
        print(f'Making {self.specialty} for ${self.coffee_price}')
    
    # 静态方法
    @staticmethod 
    def check_weather: 
        print('Its sunny') 
    
    # 类方法 
    @classmethod 
    def change_specialty(cls, specialty): 
        cls.specialty = specialty 
        print(f'Specialty changed to {specialty}')


coffee_shop = CoffeeShop('5')
# 调用实例方法
coffee_shop.make_coffee    #=> Making espresso for $5
# 调用静态方法
coffee_shop.check_weather    #=> Its sunny
#调用类方法修改CoffeeShop的属性specialty
coffee_shop.change_specialty('drip coffee')    #=> Specialty changed to drip coffeecoffee_shop.make_coffee    #=> Making drip coffee for $5

8、解释map函数的工作原理。

Map函数返回一个列表,该列表由对序列中的每个元素应用一个函数时返回的值组成。

python 复制代码
def add_three(x): 
    return x + 3

li = [1,2,3]
# 我对列表中的每个元素的值加了3。
[i for i in map(add_three, li)]    #=> [4, 5, 6]

9、解释reduce函数的工作原理。

reduce接受一个函数和一个序列,然后对序列进行迭代。在每次迭代中,当前元素和前一个元素的输出都传递给函数。最后,返回一个值。

python 复制代码
from functools import reduce
    def add_three(x,y): return x + y 
li = [1,2,3,5] 
reduce(add_three, li)    #=> 11返回11,它是1 + 2 + 3 + 5的总和。

10、解释filter函数的工作原理。

Filter函数顾名思义,是用来按顺序过滤元素。每个元素都被传递给一个函数,如果函数返回True,则在输出序列中返回该元素;如果函数返回False,则将其丢弃。

python 复制代码
def add_three(x): 
    if x % 2 == 0: 
        return True 
    else: 
        return False
li = [1,2,3,4,5,6,7,8]
[i for i in filter(add_three, li)]    #=> [2, 4, 6, 8]注意上面所有不能被2整除的元素如何被删除的。
相关推荐
flysh0511 分钟前
pyAutoGUI 模块主要功能介绍-(2)键盘功能
python·pyautogui
2401_8454174515 分钟前
set和map
java·开发语言
2301_8210465228 分钟前
Python的深度学习
开发语言·javascript·ecmascript
强盛小灵通专卖员34 分钟前
闪电科创 SCI专业辅导
python·深度强化学习·研究生·ei会议·导师·sci期刊
跟橙姐学代码1 小时前
自动化邮件发送的终极秘籍:Python库smtplib与email的完整玩法
前端·python·ipython
扯淡的闲人1 小时前
多语言编码Agent解决方案(2)-后端服务实现
开发语言·python·深度学习
蒋星熠1 小时前
深度学习实战指南:从神经网络基础到模型优化的完整攻略
人工智能·python·深度学习·神经网络·机器学习·卷积神经网络·transformer
烦躁的大鼻嘎2 小时前
【Linux】深入Linux多线程架构与高性能编程
linux·运维·服务器·开发语言·c++·ubuntu
野生的编程萌新2 小时前
【C++深学日志】C++编程利器:缺省参数、函数重载、引用详解
c语言·开发语言·c++
Slaughter信仰2 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十三章知识点问答(15题)
java·开发语言·jvm