Pythonのインタビューキー(基礎)
最初の部分にお答えします(2点)
プログラミング言語と言語を理解間の違いの簡単なリスト?
C语言:Java,Python,底层均是有C语言开发完成 Java:用户量最高的语言. PHP:网站的快速开发 Python:语言简洁,代码流畅,第三方库比较多
違いPython2とのpython3のリスト?
python2: range xrange python3: range python2中有两种数据类型:unicode str python3中有两种数据类型:str bytes python2: 经典类、新式类(直接或间接继承object) python3: 新式类
コード記述された結果を見てください
v1 = 1 or 2 1 v2 = 3 and 7 or 9 and 0 7
違いは何ですか、次の値を比較?
v1 = [1,2,3] v2 = [(1),(2),(3)] v3 = [(1,),(2,),(3,)] 1和2没什么太大区别,3的话(1,)表示是一个元组,(1)表示的是里面元素本身的类型
価値交換は、コードの行によって達成しました。
a = 1 b = 2 a,b = b,a
Pythonの二重引用符の間に単一の違い、3重引用符?
单双引号都可以用来标识一个字符串 三引号是注释
違いがあると==?
is 判断两边的内存地址id是否一致 == 判断等号两边的值是否相等
Pythonのタプルやリストに変換を達成するためにどのように?
Tuple是元组的意思,元组是不能修改的;list是列表的意思,列表是可以修改的;在Python中实现Tuple和list的转换可以通过两个函数list()、Tuple()实现转换。举例如下:将元组a转换为列表b,b=list(a)将列表b转换为元组a,a=Tuple(b)
文字列達成するためにどのように
name='老男孩'
逆転を?1.切片 name = name[::-1] 2.列表的reverse方法 name = list(name) name.reverse() name = ''.join(name) #name = ''.join(name[::-1])
2セットの交差点、労働組合、違いを取得する方法は?
交集 & 并集 | 差集 -
これらの例では、Y = X! - (XY)が設定されるのですか?
两个不相等的非空集合
Pythonでオブジェクトをコピーする方法?
copy模块 copy.copy() copy.deepcopy()
割り当て、差異の浅いコピーと深いコピーの説明?
赋值:让多个变量同时指向一个对象的内存地址。不可变对象在赋值时会开辟新空间。可变对象在赋值时,修改一个的值,另一个也会发生改变。 浅拷贝:(copy模块的copy.copy()函数),浅拷贝在拷贝时,只拷贝第一层中的引用,如果元素是可变对象,并且被修改,那么拷贝的对象也会发生变化。####拷贝第一层元素内存地址 深拷贝:完全拷贝了父对象及其子对象。深拷贝就是将顶级对象以及子对象的值同时复制给新对象,此时修改任何一个都不会影响另一个。{copy模块的 copy.deepcopy()函数}####不管多少层,不可变共有,可变开辟新空间
効果を渡しますか?
占位符
コードを読み取る書き込み結果。
import copy a = [1,2,4,5,['b','c']] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(5) a[4].append('d') print(b) print(c) print(a) b = ['1','2','4','5',['b','c','d'],'5'] c = ['1','2','4','5',['b','c','d']] d = ['1','2','4','5',['b','c','d'],'5']
パイソンと9つの* 9の乗算テーブルを実現。
Pythonとは、フィボナッチ数を表示します。
lst = [1,1] for i in range(10): lst.append()
どのように私は、重複する値のリストを削除しますか?
set list(set(list))
100Gのファイルサイズは、特定のプロシージャのコードを記述し、ファイルの内容を読み取るために、etl_log.txt?
for i in 文件句柄
A =辞書(ZIP(( ""、 "B"、 "C"、 "D"、 "E")、(1,2,3,4,5)))请问A是什么?
字典
ラムダキーワードの役割?
匿名函数
*arg
そして、**kwarg
役割?接收多余的位置参数 接收对于的关键字参数
関数内でグローバル変数を設定するには?
global name
フィルタ、マップ、役割を減らしますか?
过滤 映射 累计算
匿名関数とは何ですか?無名関数の役割は何ですか?
lambda 匿名函数,俗称一行函数 配合高阶函数使用
層のPython再帰の最大数?
官方说明是1000 实际是994-998
イテレータとは何ですか?反復可能オブジェクトとは何ですか?
__iter__()和__next__() __iter__()
発電機は何ですか?
生成器的本质就是一个迭代器 具有yield关键字就是生成器
デコレータとアプリケーションのシナリオとは何ですか?
装饰器的本质就是闭包 在不修改源代码,以及调用方式的情况下,额外的增加新功能 类 登录验证
反射とアプリケーションのシナリオとは何ですか?
通过字符串操作对象的方法及属性 场景 CBV 用户输入
一般的なデコレータを書きます。
def func(a): def foo(*args,**kwargs) ret = a("*args,**kwargs") return ret return foo @func def f1(*args,**kwargs): print(f"这是一个{args}") return "我可以返回了" f1(1,2,3,34,4,5)
引数付きのデコレータを書きます。
def startEnd(fun): def wraper(name): print("!!!!!!!!!!!!start!!!!!!!!!") fun(name) print("!!!!!!!!!!!!!end!!!!!!!!!") return wraper hello() @startEnd def hello(name): print("hello {0}".format(name)) hello("boy")
結果を求めて
def num(): return [lambda x:i*x for i in range(4)] print([m(2) for m in num()]) [6,6,6,6]
デフ(、B = [])の文言は何のトラップ?
默认参数是可变类型 闭包
コード記述された結果を見てください
def func(a,b=[]): b.append(a) return b v1 = func(1) v2 = func(2,[10,20]) v3 = func(3) print(v1,v2,v3) [1, 3] [10, 20, 2] [1, 3]
コード記述された結果を見てください
def func(a,b=[]): b.append(a) return b v1 = func(1) print(v1) v2 = func(2,[10,20]) print(v2) v3 = func(3) print(v3) [1] [10, 20, 2] [1,3]
整数を達成するためにIPアドレスを変換する関数を記述してください。
如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100 再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
ディレクトリ下のすべてのファイルを検索してください(そこにネストされたファイルがあります)。
os.walk()
結果を求めて
import math print (math.floor(5.5)) 5
かどうかは、関数functoolsで使用されますか?その役割は何ですか?
再検索し、一致の違いは?
match 从开头进行匹配,匹配一个就停止 search 从任意位置进行匹配 匹配一个就停止
PythonのHTMLタグと一致する場合は、< >と<?>の違いは何ですか?
. 贪婪匹配 匹配多个任意字符 .*? 非贪婪 只匹配一次
乱数を生成するには?
random random.random()
スーパーロール?
按照mro的顺序进行继承
単一および二重下線の下線の違いは?
__a = 10 强制私有 _b = 15 程序员约定俗成这是一个私有方法
差@staticmethodと@classmethod?
一个是静态方法 普通函数 一个是类方法
シングルトンパターン(ロック)を実装します。
import threading import time class Singleton: instance = None lock = threading.RLock() def __init__(self, name): self.name = name def __new__(cls, *args, **kwargs): if cls.instance: return cls.instance with cls.lock: if cls.instance: return cls.instance time.sleep(0.1) cls.instance = object.__new__(cls) return cls.instance def task(): obj = Singleton('x') print(obj) for i in range(10): t = threading.Thread(target=task) t.start() data = Singleton('asdfasdf') print(data
スタックとキューの違いは?
栈 先进后出 队列 先进先出
次のコードの出力は何をしている?答え、説明してください。
class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x
次のコードスニペットへの参照
class Context: pass with Content() as ctx: ctx.do_something() 请在Context类下添加代码完成该类的实现
第二の部分は、トピックであってもよいです
- 二番目に大きい値の一覧を取得する方法?
- Pythonのメモリ管理メカニズムをブリーフ。
- Pythonのガベージコレクションのメカニズムをブリーフ。
- 2つのキューを使用してスタックを実装するために来てください。
- リンクリストを実装するためのPythonを使用してください。
- リストのPython実装を逆にしてください。