首页 > 编程语言 >python面试题01

python面试题01

时间:2023-08-23 15:12:45浏览次数:48  
标签:node 面试题 01 python self value next func print

基础题

写一个带参数的闭包

from functools import wraps
def outer(n):
    @wraps(n)
    def wrapper(func):
        def inner(*args, **kwargs):
            print("inner")
            print(n)
            return func(*args, **kwargs)

        return inner

    return wrapper
@outer("123")
def func():
    print("func")
func()

写出结果

def func():
    return [lambda x: x * i for i in range(4)]


res = [j(2) for j in func()]
print(res)

def func(a,b=[])这种写法有什么问题吗

def func():
    return [lambda x: x * i for i in range(4)]


res = [j(2) for j in func()]
print(res)

写出结果

def func(a, b=[]):
    b.append(a)
    return b
v1 = func(1)  # [1]
v2 = func(2, [10, 20])  # [10, 20, 2]
v3 = func(3)  # [1, 3]
print(v1, v2, v3)

补零

ip = "192.168.10.1"
for s in ip.split("."):
    print(s.zfill(8))

取整

import math
i = 5.5
print(math.floor(i))  # 地板取整
print(math.ceil(i))  # 天花板取整

用两个队列实现一个栈

# 用两个队列实现一个栈
from queue import Queue


class Q:
    def __init__(self):
        self.master_queue = Queue()
        self.sub_queue = Queue()

    def push(self, val):
        self.master_queue.put(val)
        return self.master_queue

    def pop(self):
        if self.master_queue.qsize() == 0:
            return None
        while True:
            if self.master_queue.qsize() == 1:
                value = self.master_queue.get()
                break
            self.sub_queue.put(self.master_queue.get())
        self.master_queue, self.sub_queue = self.sub_queue, self.master_queue
        return value


if __name__ == '__main__':
    q = Q()
    q.push(1)
    q.push(2)
    q.push(3)
    print(q.pop())
    print(q.pop())
    print(q.pop())
    print(q.pop())

实现一个链表

# 单链表
class Node:
    def __init__(self, value, next_node):
        self.value = value
        self.next_node = next_node


node = Node("head", None)
next_node = node

for i in range(3):
    new_node = Node("%s" % i, None)
    next_node.next_node = new_node
    next_node = new_node

print(node.value)
print(node.next_node.value)
print(node.next_node.next_node.value)
print(node.next_node.next_node.next_node.value)

单链表(实现逆转)

# 单链表(实现逆转)
class Node:
    def __init__(self, value, next_node, prev_node):
        self.value = value
        self.next_node = next_node
        self.prev_node = prev_node


node = Node("head", None, None)
next_node = node

for i in range(3):
    new_node = Node("%s" % i, None, next_node)
    next_node.next_node = new_node
    next_node = new_node

print(node.value)
print(node.next_node.value)
print(node.next_node.next_node.value)
print(node.next_node.next_node.next_node.value)
print(node.next_node.next_node.next_node.prev_node.value)
print(node.next_node.next_node.next_node.prev_node.prev_node.value)
print(node.next_node.next_node.next_node.prev_node.prev_node.prev_node.value)

双向循环链表

# 双向循环链表
class Node:
    def __init__(self, value, next_node, prev_node):
        self.value = value
        self.next_node = next_node
        self.prev_node = prev_node


node = Node("head", None, None)
next_node = node

for i in range(3):
    new_node = Node("%s" % i, None, next_node)
    next_node.next_node = new_node
    next_node = new_node
next_node.next_node = node
node.prev_node = next_node

print(node.value)
print(node.next_node.value)
print(node.next_node.next_node.value)
print(node.next_node.next_node.next_node.value)
print(node.next_node.next_node.next_node.next_node.value)
print(node.next_node.next_node.next_node.next_node.next_node.value)
print(node.next_node.next_node.next_node.next_node.next_node.next_node.value)
print(node.next_node.next_node.next_node.next_node.next_node.next_node.next_node.value)

标签:node,面试题,01,python,self,value,next,func,print
From: https://www.cnblogs.com/z-h-q/p/17651669.html

相关文章

  • Python列表推导式
    int_list=range(1,55,2)print(list(int_list))结果:[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53]int_list=range(1,55,2)print([str(x)forxinint_list])结果:['1','3',&......
  • [刷题笔记] Luogu P2679 [NOIP2015 提高组] 子串
    ProblemDescription我们可以换个思路。从字符串\(A\)中拿出\(k\)个字串使其变成\(B\)。求有几种不同的方案?Analysis我们发现\(A\)中的一个字符取或者不取影响后面的决策,这并不代表它一定有后效性,我们可以记录这一层状态。和最长公共子序列同理,定义\(f_{i,j,k,l}(\fo......
  • 【腾讯云 TDSQL-C Serverless 产品体验】 使用 Python 向 TDSQL-C 添加读取数据 实现
    前言TDSQL-CMySQL版(TDSQL-CforMySQL)是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,为用户提供具备高弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-CMySQL版100%兼容MySQL5.7、8.0。实现超百万级QPS的高吞吐,最高PB级智......
  • python必坑知识点05
    1、js基本数据类型undefined,null,number,string,symbol,boolean,object,array,date2、js中的拷贝(深浅拷贝)https://www.cnblogs.com/echolun/p/7889848.htmlhttps://www.bilibili.com/video/BV1iu411e7DS/?spm_id_from=333.337.search-card.all.click&vd_source=69181b959bc0......
  • Maven面试题大全及答案
    1.什么是Maven?Maven使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。由于Maven的缺省构建规则有较高的可重用性,所以常常用两三行Maven构建脚本就可以构建简单的......
  • Python基础入门学习笔记 077 GUI的终极选择:Tkinter14
    Tkinter提供了三种标准对话框模块,分别是:messagebox、filedialog、colorchoosermessagebox(消息对话框)实例1:askokcancel函数1fromtkinterimport*23print(messagebox.askokcancel("FishCDemo","发射核弹?"))45mainloop() 实例2:askquestion函数 实例3:asire......
  • Python基础入门学习笔记 074 GUI的终极选择:Tkinter11
    事件绑定对于每个组件来说,可以通过bind()方法将函数或方法绑定到具体的事件上。当被触发的事件满足该组件绑定的事件时,Tkinter就会带着事件描述去调用handler()方法实例1:捕获单击鼠标位置1fromtkinterimport*23root=Tk()45defcallback(event):6prin......
  • Python基础入门学习笔记 075 GUI的终极选择:Tkinter12
    Message组件Message(消息)组件是Label组件的变体,用于显示多行文本信息。Message组件能够自动换行,并调整文本的尺寸使其适应给定得尺寸。实例1:1fromtkinterimport*23root=Tk()4w1=Message(root,text="这是一则消息",width=100)5w1.pack()6w2=Message(root,......
  • Python基础入门学习笔记 071 GUI的终极选择:Tkinter8
    Canvas(画布)组件一个可以让你随心所欲绘制界面的组件。通常用于显示和编辑图形,可以用它来绘制直线、图形、多边形,甚至是绘制其他组件。实例1:1fromtkinterimport*2root=Tk()3#创建canvas对象框,设置其宽度、高度与背景色4w=Canvas(root,width=200,height=100,b......
  • Python基础入门学习笔记 073 GUI的终极选择:Tkinter10
    Munu组件Tkinter提供了一个Menu组件,用于实现顶级菜单、下拉菜单和弹出菜单。实例1:创建一个顶级菜单(或称窗口主菜单)1fromtkinterimport*23defcallback():4print("被调用了")56root=Tk()789menubar=Menu(root)#创建一个顶级菜单10m......