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爬虫等方面的问题,并提供了多个示例说明。