Python常问的100个面试问题汇总(上篇)

  • Post category:Python

Python常问的100个面试问题汇总(上篇)攻略

Python是一种高级编程语言,应用广泛,因此在面试中经常会涉及到Python相关的问题。本文将介绍Python常问的100面试问题汇总(上篇),包括Python基础、Python高级、Python Web开发、Python爬虫等方面的问题。

1.基础

1.1 Python中的可变数据类型和不可变数据类型有哪些?

Python中的可变数据类型包括列表、字典和集合,不可变数据类型包括数字、字符串和元组。

示例1:可变数据类型和不可数据类型

# 可变数据类型
my_list = [1, 2, 3]
my_dict = {'name': 'John', 'age': }
my_set = {1, 2, 3}

# 不可变数据类型
my_int = 10
my_str = 'Hello, World!'
my_tuple = (1, 2, 3)

在这个示例中,我们展示了Python中的可数据类型和不可变数据类型。

1.2 Python中的is和==有什么区别?

is用于比较两个对象的内存地址是否相同,==用于比较两个对象的值是否相同。

示例2:is和==的区别

# is用于比较两个对象的内存地址是否相同
a = [1, 2, 3]
b = a
print(a is b)  # True

# ==用于比较两个对象的值是否相同
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b)  # True

在这个示例中,我们展示了is和==的区别。

2. Python高级

2.1 Python中装饰器是什么?

装饰器是Python中的一种高级语法,它可以在不修改原函数的情况下,为函数添加额外的功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。

示例3:装饰器

def my_decorator(func):
    def wrapper():
        print('Before function is called.')
        func()
        print('After function is called.')
    return wrapper

@my_decorator
def my_function():
    print('Hello, World!')

my_function()

在这个示例中,我们定义了一个装饰器my_decorator,它接受一个函数作为参数,并返回一个新的函数wrapper。我们使用@my_decorator语法将装饰器应用于my_function函数。最后,我们调用my_function函数,输出结果。

2.2 Python中的生成器是什么?

生成器是Python中的一种高级语法,它可以在迭代过程中动态生成数据,从而节省内存空间。生成器本质上是一个函数,它使用yield语句返回数据。

示例4:生成器

def my_generator():
    for i in range(10):
        yield i

for i in my_generator():
    print(i)

在这个示例中,我们定义了一个生成器my_generator,它使用yield语句返回数据。我们使用for循环迭代生成器,输出结果。

3. Python Web开发

3.1 Python中的WSGI是什么?

WSGI是Python Web Server Gateway Interface的缩写,它是Python Web应用程序和Web服务器之间的标准接口。WSGI定义了Web服务器如何与Python Web应用程序进行通信。

示例5:WSGI

def application(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain')]
    start_response(status, headers)
    return [b'Hello, World!']

if __name__ == '__main__':
    from wsgiref.simple_server import make_server
    httpd = make_server('', 8000, application)
    print('Serving on port 8000...')
    httpd.serve_forever()

在这个示例中,我们定义了一个WSGI应用程序application,它接受两个参数environ和start_response。我们使用wsgiref.simple_server模块创建一个Web服务器,并将应用程序绑定到端口8000。最后,我们使用httpd.serve_forever()方法启动Web服务器。

3.2 Python中的Flask是什么?

Flask是Python中的一个Web框架,它使用Python语言编写,提供了快速构建Web应用程序的功能。Flask具有轻量级、灵活、易于扩展等特点。

示例6:Flask

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

在这个示例中,我们使用Flask框架创建一个Web应用程序。我们定义了一个路由/,并将其绑定到hello_world函数。最后,我们使用app.run()方法启动Web服务器。

4. Python爬虫

4.1 Python中的requests库是什么?

requests库是Python中的一个HTTP库,它可以发送HTTP请求,并返回HTTP响应。requests库提供了简单易用的API,可以方便地进行HTTP请求和响应的处理。

示例7:requests库

import requests

url = 'https://www.baidu.com'
response = requests.get(url)
print(response.text)

在这个示例中,我们使用requests库发送GET请求,获取百度首页的HTML内容,并使用print()函数输出结果。

4.2 Python中的BeautifulSoup库是什么?

BeautifulSoup库是Python中一个HTML解析库,它可以解析HTML文档,并提供了简单易用的API,可以方便地进行HTML文档的处理。

示例8:BeautifulSoup库

import requests
from bs4 import BeautifulSoup

url = 'https://www.baidu.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)

在这个示例中,我们使用requests库发送GET请求,获取百度首页的HTML内容。后,我们使用BeautifulSoup库解析HTML文档,并获取页面标题。最后,我们使用print()函数输出结果。

以上是Python常问的100个面试问题汇总(上篇)的完整攻略,其中包括Python基础、Python高级、Python Web开发、Python爬虫等方面的问题,并提供了多个示例说明。