01財団ステージ

Pythonのインタビューキー(基礎)

最初の部分にお答えします(2点)

  1. プログラミング言語と言語を理解間の違いの簡単なリスト?

        C语言:Java,Python,底层均是有C语言开发完成
        Java:用户量最高的语言.
        PHP:网站的快速开发
        Python:语言简洁,代码流畅,第三方库比较多
  2. 違いPython2とのpython3のリスト?

        python2: range  xrange 
    
    ​   python3:            range
    
    ​   
    
    ​   python2中有两种数据类型:unicode  str 
    
    ​   python3中有两种数据类型:str      bytes 
    
    ​     python2: 经典类、新式类(直接或间接继承object) 
    
        python3: 新式类 
  3. コード記述された結果を見てください

    v1 = 1 or 2
    1
    
    v2 = 3 and 7 or 9 and 0
    7
  4. 違いは何ですか、次の値を比較?

    v1 = [1,2,3]
    v2 = [(1),(2),(3)]
    v3 = [(1,),(2,),(3,)]
    
    1和2没什么太大区别,3的话(1,)表示是一个元组,(1)表示的是里面元素本身的类型
  5. 価値交換は、コードの行によって達成しました。

    a = 1
    b = 2
    
    a,b = b,a
    
  6. Pythonの二重引用符の間に単一の違い、3重引用符?

        单双引号都可以用来标识一个字符串
    
        三引号是注释
  7. 違いがあると==?

    is
    判断两边的内存地址id是否一致
    ==
    判断等号两边的值是否相等
  8. Pythonのタプルやリストに変換を達成するためにどのように?

    Tuple是元组的意思,元组是不能修改的;list是列表的意思,列表是可以修改的;在Python中实现Tuple和list的转换可以通过两个函数list()、Tuple()实现转换。举例如下:将元组a转换为列表b,b=list(a)将列表b转换为元组a,a=Tuple(b)
  9. 文字列達成するためにどのようにname='老男孩'逆転を?

    1.切片
    name = name[::-1]
    2.列表的reverse方法
    name = list(name)
    name.reverse()
    name = ''.join(name)
    #name = ''.join(name[::-1])
  10. 2セットの交差点、労働組合、違いを取得する方法は?

    交集   &
    并集   |
    差集   -
  11. これらの例では、Y = X! - (XY)が設定されるのですか?

    两个不相等的非空集合
  12. Pythonでオブジェクトをコピーする方法?

    copy模块
    
    copy.copy()
    
    copy.deepcopy()
  13. 割り当て、差異の浅いコピーと深いコピーの説明?

    赋值:让多个变量同时指向一个对象的内存地址。不可变对象在赋值时会开辟新空间。可变对象在赋值时,修改一个的值,另一个也会发生改变。
    
    浅拷贝:(copy模块的copy.copy()函数),浅拷贝在拷贝时,只拷贝第一层中的引用,如果元素是可变对象,并且被修改,那么拷贝的对象也会发生变化。####拷贝第一层元素内存地址
    
    深拷贝:完全拷贝了父对象及其子对象。深拷贝就是将顶级对象以及子对象的值同时复制给新对象,此时修改任何一个都不会影响另一个。{copy模块的 copy.deepcopy()函数}####不管多少层,不可变共有,可变开辟新空间
  14. 効果を渡しますか?

    占位符
  15. コードを読み取る書き込み結果。

    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']
  16. パイソンと9つの* 9の乗算テーブルを実現。

  17. Pythonとは、フィボナッチ数を表示します。

    lst = [1,1]
    for i in range(10):
    lst.append()
  18. どのように私は、重複する値のリストを削除しますか?

    set
    list(set(list))
  19. 100Gのファイルサイズは、特定のプロシージャのコードを記述し、ファイルの内容を読み取るために、etl_log.txt?

    for i in 文件句柄
  20. A =辞書(ZIP(( ""、 "B"、 "C"、 "D"、 "E")、(1,2,3,4,5)))请问A是什么?

    字典
  21. ラムダキーワードの役割?

    匿名函数
  22. *argそして、**kwarg役割?

    接收多余的位置参数
    
    接收对于的关键字参数
  23. 関数内でグローバル変数を設定するには?

    global name
  24. フィルタ、マップ、役割を減らしますか?

    过滤
    映射
    累计算
  25. 匿名関数とは何ですか?無名関数の役割は何ですか?

    lambda  匿名函数,俗称一行函数
    
    配合高阶函数使用
    
  26. 層のPython再帰の最大数?

    官方说明是1000  实际是994-998
  27. イテレータとは何ですか?反復可能オブジェクトとは何ですか?

    __iter__()和__next__()
    
    __iter__()
  28. 発電機は何ですか?

    生成器的本质就是一个迭代器 具有yield关键字就是生成器
  29. デコレータとアプリケーションのシナリオとは何ですか?

    装饰器的本质就是闭包
    在不修改源代码,以及调用方式的情况下,额外的增加新功能
    类    登录验证   
  30. 反射とアプリケーションのシナリオとは何ですか?

    通过字符串操作对象的方法及属性
    场景
        CBV  用户输入
  31. 一般的なデコレータを書きます。

    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)
    
  32. 引数付きのデコレータを書きます。

    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")
  33. 結果を求めて

    def num():
      return [lambda x:i*x for i in range(4)]
    print([m(2) for m in num()])
    
    [6,6,6,6]
  34. デフ(、B = [])の文言は何のトラップ?

    默认参数是可变类型   闭包
  35. コード記述された結果を見てください

    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]
  36. コード記述された結果を見てください

    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]
    
    
    
    
  37. 整数を達成するためにIPアドレスを変換する関数を記述してください。

    如 10.3.9.12 转换规则为:
            10            00001010
             3            00000011
             9            00001001
            12            00001100
    
    再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
  38. ディレクトリ下のすべてのファイルを検索してください(そこにネストされたファイルがあります)。

    os.walk() 
  39. 結果を求めて

    import math
    print (math.floor(5.5))
    
    5
  40. かどうかは、関数functoolsで使用されますか?その役割は何ですか?

  41. 再検索し、一致の違いは?

    match 从开头进行匹配,匹配一个就停止
    search 从任意位置进行匹配 匹配一个就停止
  42. PythonのHTMLタグと一致する場合は、< >と<?>の違いは何ですか?

    . 贪婪匹配 匹配多个任意字符
    .*? 非贪婪 只匹配一次
  43. 乱数を生成するには?

    random
    random.random()
  44. スーパーロール?

    按照mro的顺序进行继承
  45. 単一および二重下線の下線の違いは?

    __a = 10 强制私有
    _b = 15 程序员约定俗成这是一个私有方法
  46. 差@staticmethodと@classmethod?

    一个是静态方法 普通函数
    一个是类方法
  47. シングルトンパターン(ロック)を実装します。

    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
  48. スタックとキューの違いは?

    栈 先进后出
    队列 先进先出
  49. 次のコードの出力は何をしている?答え、説明してください。

    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
  50. 次のコードスニペットへの参照

    class Context:
        pass
    
    with Content() as ctx:
        ctx.do_something()
    请在Context类下添加代码完成该类的实现

第二の部分は、トピックであってもよいです

  1. 二番目に大きい値の一覧を取得する方法?
  2. Pythonのメモリ管理メカニズムをブリーフ。
  3. Pythonのガベージコレクションのメカニズムをブリーフ。
  4. 2つのキューを使用してスタックを実装するために来てください。
  5. リンクリストを実装するためのPythonを使用してください。
  6. リストのPython実装を逆にしてください。

おすすめ

転載: www.cnblogs.com/zhaoganggang/p/12366037.html