答:Python是一种高级编程语言,被广泛应用于Web开发、数据分析、人工智能等领域。
Python的优点包括:
答:可变对象是指对象的值可以改变,如列表和字典;不可变对象是指对象的值不能改变,如字符串和元组。
区别在于:对于可变对象,改变对象的值不会改变对象的地址,而对于不可变对象,改变对象的值会改变对象的地址。
答:生成器是一种特殊的函数,可以用来迭代生成一系列值,而不需要一次性生成所有值,从而节省内存空间。
生成器函数的特点是使用yield语句返回值,而不是return语句。生成器函数被调用后,会返回一个生成器对象,可以使用next()函数或for循环来逐个获取生成器函数生成的值。
答:Python中可以使用threading模块来实现多线程。具体步骤如下:
答:装饰器是一种特殊的函数,可以用来修改其他函数的行为,而不需要修改其他函数的源代码。
装饰器的语法是在函数定义前使用@符号加上装饰器函数名。装饰器函数需要接收一个函数作为参数,并返回一个新的函数。
答:Python中可以使用open()函数来打开文件,并使用read()和write()方法来读写文件。
打开文件的语法是open(file, mode),其中file是文件名,mode是打开文件的模式,包括:
读取文件的语法是file.read(),写入文件的语法是file.write()。
答:面向对象编程是一种编程范式,通过将数据和方法封装在一个对象中,实现代码的模块化和复用。
在Python中,可以使用class关键字定义一个类,类中包括属性和方法。可以使用__init__()方法初始化对象,使用self关键字表示对象本身。
答:lambda表达式是一种匿名函数,可以用来简化代码。lambda表达式的语法是lambda arguments: expression,其中arguments是函数的参数,expression是函数的返回值。
lambda表达式可以作为函数的参数传递,也可以作为函数的返回值返回。
答:异常处理是一种处理程序运行时错误的机制,可以在程序出现错误时进行捕获和处理,避免程序崩溃。在Python中,可以使用try…except语句来进行异常处理。
答:Python代码执行缓慢的原因,是因为它是一种解释型语言。它的代码在运行时进行解释,而不是编译为本地语言。
为了提高Python代码的速度,我们可以使用CPython、Numba,或者我们也可以对代码进行一些修改。
减少内存占用。
使用内置函数和库。
将计算移到循环外。
保持小的代码库。
避免不必要的循环
易于编码
免费和开源语言
高级语言
易于调试
OOPS支持
大量的标准库和第三方模块
可扩展性(我们可以用C或C++编写Python代码)
用户友好的数据结构
Web开发
桌面GUI开发
人工智能和机器学习
软件开发
业务应用程序开发
基于控制台的应用程序
软件测试
Web自动化
基于音频或视频的应用程序
图像处理应用程序
答:Python内存由Python的私有headspace管理。
所有的Python对象和数据结构都位于一个私有堆中。私用堆的分配由Python内存管理器负责。
Python还内置了一个的垃圾收集器,可以回收未使用的内存并释放内存,使其可用于headspace。
Python中主要有四种类型的数据结构。
例如:a = [1,2,3,4]
例如:a = {1,2,3,4}
例如:a =(1,2,3,4)
例如:a = {'number':[1,2,3,4]}
例如:5 // 2 = 2
例如:5 % 2 = 1
例如:5 ** 2 = 25、5 ** 3 = 125
append:在列表末尾添加新元素。
numbers = [1,2,3,4,5]
numbers.append(6)
print(numbers)
>[1,2,3,4,5,6]
insert:在列表的特定位置添加元素。
## insert(position,value)
numbers.insert(2,7)
print(numbers)
>[1,2,7,3,4,5,6]
extend:通过添加新列表来扩展列表。
numbers.extend([7,8,9])
print(numbers)
>[1,2,7,3,4,5,6,7,8,9]
numbers.append([4,5])
>[1,2,7,3,4,5,6,7,8,9,[4,5]]
remove:将删除列表中的第一个匹配值,它以值作为参数。
numbers = [1,2,3,4,5]
numbers.remove(5)
> [1,2,3,4]
del:使用索引删除元素,它不返回任何值。
del numbers[0]
>[2,3,4]
pop:将删除列表中顶部的元素,并返回列表的顶部元素。
numbers.pop()
>4
答:switch语句是实现多分支选择功能,根据列表值测试变量。switch语句中的每个值都被称为一个case。在Python中,没有内置switch函数,但是我们可以创建一个自定义的switch语句。
switcher = {
1: "January",
2: "February",
3: "March",
4: "April",
5: "May",
6: "June",
7: "July",
8: "August",
9: "September",
10: "October",
11: "November",
12: "December"
}
month = int(input())
print(switcher.get(month))
> 3
march
range:range函数返回从起点到终点的一系列序列。
range(start, end, step),第三个参数是用于定义范围内的步数。
# number
for i in range(5):
print(i)
> 0,1,2,3,4
# (start, end)
for i in range(1, 5):
print(i)
> 1,2,3,4
# (start, end, step)
for i in range(0, 5, 2):
print(i)
>0,2,4
答:在Python中,我们可以通过下面两种方式进行注释。
三引号’‘’,用于多行注释。
单井号#,用于单行注释。
答:Python3 中有六个标准的数据类型:
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
答:del 可以根据索引(元素所在位置)来删除的,没有返回值。 pop 可以根据索引弹出一个值,然后可以接收它的返回值。
答:过滤器函数,根据某些条件从可迭代对象中筛选值。
# iterable
lst = [1,2,3,4,5,6,7,8,9,10]
def even(num):
if num%2==0:
return num
# filter all even numbers
list(filter(even,lst))
---------------------------------------------
[2, 4, 6, 8, 10]
答:reduce()函数接受一个函数和一个序列,并在计算后返回数值。
from functools import reduce
a = lambda x,y:x+y
print(reduce(a,[1,2,3,4]))
> 10
split():只要模式匹配,此方法就会拆分字符串。
sub():此方法用于将字符串中的某些模式替换为其他字符串或序列。
subn():和sub()很相似,不同之处在于它返回一个元组,将总替换计数和新字符串作为输出。
import re
string = "There are two ball in the basket 101"
re.split("\W+",string)
---------------------------------------
['There', 'are', 'two', 'ball', 'in', 'the', 'basket', '101']
re.sub("[^A-Za-z]"," ",string)
----------------------------------------
'There are two ball in the basket'
re.subn("[^A-Za-z]"," ",string)
-----------------------------------------
('There are two ball in the basket', 10)
答:self表示类的实例。通过使用self关键字,我们可以在Python中访问类的属性和方法。
注意,在类的函数当中,必须使用self,因为类中没有用于声明变量的显式语法。
答:map()函数将给定函数应用于可迭代对象(列表、元组等),然后返回结果(map对象)。
我们还可以在map()函数中,同时传递多个可迭代对象。
numbers = (1, 2, 3, 4)
result = map(lambda x: x + x, numbers)
print(list(result))
答:继承允许一个类获得另一个类的所有元素(比如属性和方法)。继承提供代码可重用性,使创建和维护应用程序更容易。我们继承的类称为超类,继承的类称为派生/子类。
以下是Python支持的不同类型的继承:
import numpy as np
arr = np.array([1,3,2,4,5])
print(arr.argsort()[ - 3:] [:: - 1])
import numpy as np
a = np.array([1,2,3,4,5])
p = np.percentile(a,50)#Returns 50th percentntile,eg median
print(p)
答:首先,解释器读取Python代码并检查是否有语法或格式错误。如果发现错误,则暂停执行。如果没有发现错误,则解释器会将Python代码转换为等效形式或字节代码。
然后将字节码发送到Python虚拟机(PVM),这里Python代码将被执行,如果发现任何错误,则暂停执行,否则结果将显示在输出窗口中。