东莞百度网站快速排名,自己做报名网站教程,做视频类型的网站,订阅号和服务号的区别这里写目录标题 1、什么是解释性语言#xff0c;什么是编译性语言#xff1f;2、说说中作用域是怎么划分的3、type和isinstance方法的区别4、浅拷贝和深拷贝5、python中变量在内存中存储方式6、python中的封装、继承、多态7、python中内存管理机制是怎么样的#xff1f;8、简… 这里写目录标题 1、什么是解释性语言什么是编译性语言2、说说中作用域是怎么划分的3、type和isinstance方法的区别4、浅拷贝和深拷贝5、python中变量在内存中存储方式6、python中的封装、继承、多态7、python中内存管理机制是怎么样的8、简述类属性和对象属性的区别9、类方法、实例方法、静态方法区别10、类中property有什么用11、with方法使用原理12、while-else for-else语法的用法13、编写程序实现该函数的输入是一个仅包含数字的list输出一个新的list14、read、readline、readlines15、传递方式是值传递还是引用传递16、正则表达式中贪婪模式和非贪婪模式的区别17、python异步场景有哪些18、把字符串s中的每个空格替换成”%20”19、打乱一个排好序的对象20、将d按value进行排序21、将str1k:1|k1:2|k2:3|k3:4处理为字典22、写一个列表生成式产生一个公差为11的等差数列 0 11 2223、给定两个列表怎么找出他们相同的元素和不同的元素24、请写出一段python代码实现删除list里面的重复元素? 1、什么是解释性语言什么是编译性语言
编译型语言特点编译成二进制文件一次编译多次执行执行速度快只需要翻译一次跨平台型比较弱 解释型语言特点翻译成C代码再翻译成二进制再执行每次编译每次执行执行速度慢多次执行、多次编译跨平台型比较强 2、说说中作用域是怎么划分的 内建作用域、全局作用域、闭包函数作用域、局部作用域 内建作用域max、len在任何地方都可以使用 全局作用域全局变量定义在.py文件中的变量 闭包函数作用域定义在闭包函数中 局部作用域定义在内部函数中
import os
from functools import reduce
from typing import Iterator, Iterablec 1 # 全局作用域def fn():d 2 # 函数作用域def fn1():e 3 # 局部作用域max(1, 2, 3) # 内建作用域在任何地方都可以用3、type和isinstance方法的区别
目的不同 type用于获取对象的类型其返回值是对象的类型 isinstance用于测试对象是否是某种类型返回True或者False type不能判断子类对象是否属于父类isinstance可以
a 2
b 2.4
print(isinstance(a, (int, float))) #True
print(isinstance(b, (int, float))) #Trueclass Father:passclass Son(Father):passif __name__ __main__:son Son()print(type(son)) # class __main__.Sonprint(isinstance(son, Son)) # Trueprint(isinstance(son, Father)) # Trueprint(isinstance(son, object)) # True4、浅拷贝和深拷贝
总结 1、浅拷贝只拷贝父对象不会拷贝父对象中子对象 2、深拷贝不但拷贝父对象父对象中的子对象也会拷贝 3、不可变对象无论是深拷贝还是浅拷贝都不会发生拷贝**
浅拷贝旨在减少内存的占用 深拷贝可以在做数据的清洗、修改或者入库的时候对原数据进行复制一份以防数据修改之后找不到原数据 对于不可变对象类型没有深浅拷贝的说法无论是深拷贝还是浅拷贝结果一样的如果对其重新赋值 对于可变类型来说浅拷贝只复制容器不复制容器中元素; 深拷贝复制容器元素如果是可变类型也复制元素。
5、python中变量在内存中存储方式 1、什么是引用赋值 定义了变量a并且指向了内存中的一个地址定义变量b时将a变量的引用赋给b两个变量指向了同一个内存地址。 2、引用赋值如果使用的是可变类型会被关联修改。
按值赋值python的驻留机制对相同的字符串只保留一份拷贝后续创建相同字符串时不会开辟新空间而是把该字符串的地址付给新创建的变量。 符合字符串驻留条件的有 1、数字在-5~256之间 2、符合标识符的字符串 3、字符串的长度为0或者为1时 4、字符串的由数字、字母、下划线组成时 5、字符串在编译前进行驻留而不是编译后
1,当进行修改操作时可变类型传递的是内存中的地址也就是说直接修改内存中的值并没有开辟新的内存。 2,不可变类型被改变时并没有改变原内存地址中的值而是开辟一块新的内存将原地址中的值复制过去对这块新开辟的内存中的值进行操作。
6、python中的封装、继承、多态
https://blog.csdn.net/YZL40514131/article/details/121731536
7、python中内存管理机制是怎么样的
https://blog.csdn.net/YZL40514131/article/details/125884570
8、简述类属性和对象属性的区别
类属性在__init__方法之外 类属性可以让类和对象调用
实例属性定义在__init__中或者方法中 self.开头 只能通过实例对象调用 不能通过类去调用
调用类属性 类调用直接调用类属性 对象调用先得到对象属性如果有对象属性则获取类属性 类属性是共享的 同一个类创建的不同对象共享属性 对象属性 不同对象内存是独立的
9、类方法、实例方法、静态方法区别
https://blog.csdn.net/YZL40514131/article/details/119744665
10、类中property有什么用
https://blog.csdn.net/YZL40514131/article/details/120056165
11、with方法使用原理
用于上下文管理协议 __enter__:进入上下文 __exit__退出上下文
class MyOpen:def __init__(self,filename,mode,encodingutf-8):self.fopen(filename,mode,encodingencoding)def __enter__(self):return self.fdef __exit__(self, exc_type, exc_val, exc_tb):self.f.close()with MyOpen(1.txt,r,encodingutf-8) as f:resf.readline()print(res,res)12、while-else for-else语法的用法
换句话说如果我们不是以正常方式退出循环那么else分支将不被执行。 也就说在循环体内用break、return退出不会执行else语句。
13、编写程序实现该函数的输入是一个仅包含数字的list输出一个新的list
其中每一个元素需要满足以下条件 1、该元素是偶数 2、该元素在原list中是在偶数的位置
def num_list(num):return [i for i in num if i % 2 0 and num.index(i) % 2 0]num [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num_list(num))14、read、readline、readlines
https://blog.csdn.net/YZL40514131/article/details/125609673
15、传递方式是值传递还是引用传递
不可变参数用值传递 可变参数是引用传递
16、正则表达式中贪婪模式和非贪婪模式的区别
贪婪模式正则表达式去匹配时会尽量多的匹配符合条件的内容 非贪婪模式正则表达式去匹配时会尽量少的匹配符合条件的内容一旦匹配成功不会继续往下匹配
17、python异步场景有哪些
1、多任务执行任务时不涉及共享资源或者面对共享资源时只是读取数据不会操作数据。 2、没有时序上的要求。 3、不能影响主线程的运行。 4、常用于IO操作等耗时操作因为比较影响客户的体验和使用。 5、不需要原子操作或可以通过其他方式控制原子性。
18、把字符串s中的每个空格替换成”%20”
输入:s “We are happy., 输出: “We%20are%20happy.”
s We are happy.
s.replace(, 20%)19、打乱一个排好序的对象
l [2, 3, 4, 6]
import randomrandom.shuffle(l)
print(l)20、将d按value进行排序
d {a: 24, g: 52, i: 12, k: 33}
d2 sorted(d.items(), keylambda d: d[1])
d3 {key: value for key, value in d2}
print(d3)21、将str1k:1|k1:2|k2:3|k3:4处理为字典
str1 k:1|k1:2|k2:3|k3:4
d {k.split(:)[0]: k.split(:)[1] for k in str1.split(|)}
print(d)22、写一个列表生成式产生一个公差为11的等差数列 0 11 22
l [i for i in range(0, 100, 11)]
print(l)l1 [i * 11 for i in range(10)]
print(l1)23、给定两个列表怎么找出他们相同的元素和不同的元素
l1 [1, 2, 3, 4]
l2 [2, 3, 5, 6]ll1 set(l1)
ll2 set(l2)print(ll1 ll2) # 相同的元素
print(ll1 ^ ll2) # 互不相同的元素
print(ll1 - ll2) # l1不同l2的元素{2, 3}
{1, 4, 5, 6}
{1, 4}24、请写出一段python代码实现删除list里面的重复元素?
list1 [1, 2, 2, 2, 3, 3, 4]def func(list1):slow 0fast 0while fast len(list1):if list1[fast] ! list1[slow]:slow 1list1[slow] list1[fast]fast 1return list1[:slow 1]
print(func(list1))