首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python面试中8个必考问题

尽管,创建一个新的列表,没有特定的列表参数。 下面这段代码可能能够产生想要的结果。 通过上面的修改,输出结果将变成: 2、下面这段代码的输出结果将是什么?请解释。...你如何修改上面的multipliers的定义产生想要的结果? 上面代码输出的结果是[6, 6, 6, 6] (不是我们想的[0, 2, 4, 6])。...此答案的关键是,在Python中,类变量在内部是以字典的形式进行传递。 如果一个变量名没有在当前类下的字典中发现。 则在更高级的类(如它的父类)中尽心搜索直到引用的变量名被找到。...例如,尝试获取list[10]和之后的成员,会导致IndexError. 然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。...给定以下字典的子类: 8、下面的代码能够运行么?为什么? 能够运行。 当key缺失时,执行DefaultDict类, 字典的实例将自动实例化这个数列。

898100

Python面试中8个必考问题

尽管,创建一个新的列表,没有特定的列表参数。 下面这段代码可能能够产生想要的结果。...此答案的关键是,在Python中,类变量在内部是以字典的形式进行传递。 如果一个变量名没有在当前类下的字典中发现。则在更高级的类(如它的父类)中尽心搜索直到引用的变量名被找到。...)这就是为什么第三打印语句输出结果是3 2 3 4、下面这段代码在Python2下输出结果将是什么?...例如,尝试获取list[10]和之后的成员,会导致IndexError. 然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。...8、给定以下字典的子类,下面的代码能够运行么?为什么?

48220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 面试中的必考问题

    尽管,创建一个新的列表,没有特定的列表参数。 下面这段代码可能能够产生想要的结果。...如果一个变量名没有在当前类下的字典中发现,则在更高级的类(如它的父类)中尽心搜索直到引用的变量名被找到。(如果引用变量名在自身类和更高级类中没有找到,将会引发一个属性错误。)...这就是为什么第一个打印语句输出结果是 1 1 1。 因此,如果它的任何一个子类被覆写了值(例如说,当我们执行语句 Child.x = 2),这个值只在子类中进行了修改。...例如,尝试获取 list[10] 和之后的成员,会导致 IndexError。 然而,尝试获取列表的切片,开始的 index 超过了成员个数不会产生 IndexError,而是仅仅返回一个空列表。...给定一个含有 N 个数字的列表。 使用单一的列表生成式来产生一个新的列表,该列表只包含满足以下条件的值: (a)偶数值 (b)元素为原始列表中偶数切片。 例如,如果 list[2]包含的值是偶数。

    59830

    Python 面试中8个必考问题

    尽管,创建一个新的列表,没有特定的列表参数。 下面这段代码可能能够产生想要的结果。...如果一个变量名没有在当前类下的字典中发现,则在更高级的类(如它的父类)中尽心搜索直到引用的变量名被找到。(如果引用变量名在自身类和更高级类中没有找到,将会引发一个属性错误。)...这就是为什么第一个打印语句输出结果是1 1 1。 因此,如果它的任何一个子类被覆写了值(例如说,当我们执行语句 Child.x = 2),这个值只在子类中进行了修改。...例如,尝试获取 list[10] 和之后的成员,会导致 IndexError。 然而,尝试获取列表的切片,开始的 index 超过了成员个数不会产生 IndexError,而是仅仅返回一个空列表。...给定一个含有N个数字的列表。 使用单一的列表生成式来产生一个新的列表,该列表只包含满足以下条件的值: (a)偶数值 (b)元素为原始列表中偶数切片。 例如,如果list[2]包含的值是偶数。

    89190

    Python 面试中 8 个必考问题

    尽管,创建一个新的列表,没有特定的列表参数。 下面这段代码可能能够产生想要的结果。...此答案的关键是,在Python中,类变量在内部是以字典的形式进行传递。 如果一个变量名没有在当前类下的字典中发现。则在更高级的类(如它的父类)中尽心搜索直到引用的变量名被找到。...)这就是为什么第三打印语句输出结果是3 2 3 4、下面这段代码在Python2下输出结果将是什么?...例如,尝试获取list[10]和之后的成员,会导致IndexError. 然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。...8、给定以下字典的子类,下面的代码能够运行么?为什么?

    42930

    Python 进阶指南(编程轻松进阶):五、发现代码异味

    现在,我已经通过删除额外的副本对该代码进行了重复数据删除,我只需要在一个地方进行任何必要的更改。 与所有代码异味一样,避免重复代码并不是一个必须始终遵循的硬性规则。...字典产生一个字典值,并使用冒号来分隔列表中的键和值。 这些推导式是简洁的,可以使你的代码更具可读性。...空的异常捕捉块 捕捉异常是确保程序即使在出现问题时也能继续运行的主要方法之一。当出现一个异常,但没有except块来处理它时,Python 程序会立即停止运行而崩溃。...但是很难决定如何处理一个错误,程序员可能会简单地用一个pass语句将except块留空。例如,在下面的代码中,我们使用pass创建一个except块,它什么也不做: >>> try: ......Enter a number: forty two An incorrect value was passed to int() 这段代码不会崩溃,这很好,但是它没有给用户足够的信息来知道如何修复这个问题

    97630

    JUC并发编程之单例模式双重检验锁陷阱

    1 前言 我在上一篇文章聊volatile的时候,埋下了一个问题,在并发情况下单例模式双重检验锁可能会存在的问题,那么本文就来详细分析分析它。...那么在它的外层加上synchronized关键字是因为什么呢?因为在并发情况下,多个线程可能同时进入的内部if判断进行初始化对象,产生线程安全问题,为止防止这一现象的发生,所以在外层加上同步块操作。...我这里先放上一张这段代码被编译后的字节码内容图片,方便后续的理解。 ?...前面这段代码出现的问题在于 "test04 = new Test04();" ,它在底层进行指令操作并非是原子性操作,我上图标记的部分,就是该对象创建过程的指令编码,下面就来对该四行指令进行分析它们的意思...是的,单线程下它没有任何问题,但是在多线程下,会因为重排序出现问题。

    48530

    指针那么容易出错,为什么Go还保留?

    如果你想知道为什么 Go 的运行效率会那么快? 为什么你的程序老是报 invalid memory address or nil pointer dereference?...先干一张百度百科是怎么解释指针的图: 看完后感觉如何? 我记得我第一次听说指针是在接触 C++ 的时候,那简直是噩梦,太抽象了! 所以这篇文章我尽量写得通俗易懂点。...有时候我需要在一个方法里面修改传进来的变量值,比如下面这段代码: func main() { a := "hello" fmt.Println(a) update(a) fmt.Println(...update 这个方法里面修改 a 这个变量的值,我想在当 [1] 的那段代码执行时,打印 word ,该怎么办?...这段代码里面,变量 b 他声明了,但是内存里面并未分配内存地址给他,所以你此时去操作就会报空指针! 所以怎么处理呢?

    32620

    TypeError: ‘NoneType‘ object is not subscriptable | 完美解决方法

    如果你在使用Python开发时,遇到这个问题,不用担心,它通常与对一个None对象使用下标操作有关。本文将详细介绍这个错误的原因、如何避免它,并通过具体的代码示例帮助你解决此类问题。...该错误的意思是尝试对NoneType类型的对象使用下标操作,而这种类型的对象是不允许下标操作的。我们将深入分析产生此错误的常见场景以及解决方案。...错误解释 在Python中,NoneType 是一个特殊的类型,表示“没有值”或“空值”。...错误信息示例 TypeError: 'NoneType' object is not subscriptable 该错误意味着代码中有一个对象为None,但你试图像对待列表或字典一样对它进行下标操作。...A: 该错误通常是由于代码中对None对象进行下标操作引发的。这可能是函数未返回预期值、字典中获取到了None值,或者某个变量被错误初始化为None。 Q: 如何避免这种错误?

    1.3K10

    JetBrains首席语言设计师:我们将如何让Kotlin再活几十年

    然而,随着这种具有非空和可空类型的直接设计开始用于实际代码,它很快就开始与 Kotlin 语言设计的另一个目标(与 Java 的无缝互操作性)产生了冲突。...空安全语言必须假设 Java 方法可以返回空,但是在空安全语言中为每个 Java 方法提供一个可为空的结果类型会导致非常冗长的代码,这件事情并不实用。...微调和改进 大多数语言设计工作并不是关于大的特性的,而是到处修复各种小问题和不便之处。这些小问题通常是语言设计中的矛盾。首先让我们讨论一下它们可能会如何出现。...当缺陷能严重到会使之前版本的编译器崩溃或生成的代码立即崩溃时,这是幸运的。但有时,它确实可以工作,并且可能会产生一些代码来做一些明智的事情。...在旧版本的编译器和 IDE 中实现警告和自动代码修复的情况是存在的,这样受该更改影响的开发人员将会有足够的时间在新版本编译器发布之前提前替换代码(新版本编译器会对这段代码进行不同的处理。)

    1.6K10

    笨办法学 Python · 续 练习 19:改善性能

    练习 19:改善性能 原文:Exercise 19: Improving Performance 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 这几乎完全是视频练习,其中我演示了如何改进你至今为止编写的代码的性能...在字典中,我使用DoubleLinkedList来演示这个问题。字典需要随机访问元素,至少是桶的列表中的元素。...继续尝试压榨这段代码的所有的性能。 如果你尝试更改代码,并且不会改进任何事情,那么你可以确定你做错了,并且撤销该更改并尝试其他操作。...如果你看到一个函数的修改,导致其他函数变慢,那么要么修复它,要么简单地撤销修改,并尝试一些新的方法。...使新的算法正确需要特殊技能,并且我认为 – 使用定理证明工具来验证正确性。除非你有这样的背景,创造新的算法和数据结构可能会产生危险。这包括加密算法和加密网络协议。

    55530

    你手握先进的 AI 工具,为何却依然写不好代码?

    究竟该如何用好 AI 工具呢?我们需要先回到软件开发的本质,才有可能找到答案。...举个例子,当你拿到一个 AI 生成的代码时,如果你不了解架构设计的基本原则,如何知道这段代码的可扩展性和维护性如何?如果你没有对 UI 交互的基本认知,如何判断这个界面是不是用户友好?...甚至更进一步,明明 AI 生成的代码报错了,你连报错的原因都看不懂,更别提去修复它。此时的你,就像一个听诊器都不会用的医生,面对病人束手无策。...我想,有很多使用 AI 写代码的人都遇到过,一个问题让 AI 反反复复修复,他就是修复不了,但是回归到自身,下场去定位,然后告诉他怎么修复,此时问题才可以得到解决。...AI 工具只是一个放大镜,它放大的是你原有的能力——如果你对软件开发本身理解深刻,那么 AI 工具会帮你更快实现想法;但如果你对开发知识一知半解,那么 AI 只会加快你产生错误的速度。

    16621

    译:如何用Swift进行TDD(测试驱动开发)

    相对于类似Swift的编译型语言,类似Ruby和JavaScript的解释型语言可能天生更适合TDD,因为你可以编写不存在的测试对象,并且不会产生编译错误。 所以该如何用编译型语言进行TDD?...为了说明这一点,我们对Project类进行TDD,我们希望创建一个它的字典,这样之后可以进行序列化。...1、创建一个测试和你想要存在的实例 因为我们想要测试的是创建一个Project的字典,我们需要一个Project的实例(当前它并不存在)。...所以这里我们只返回一个空的字典——我们暂时不需要任何键或值,因为没有失败的测试告诉我们这样做。 这使得测试状态为绿色,因为它修复了编译错误。...我们会创建一个新的测试,其中Project的id能给出除5以外的一个值,调用asDictionary,下断言。

    1.2K110

    关于CMSMS中SQL注入漏洞的复现与分析与利用

    漏洞分析 通过分析源代码,我们来找出SQL注入漏洞的产生点,有关的问题代码如下图所示: ?...以上这段代码,在将数组中的元素强制转换成整型之后,做了一个条件判断和一个unset操作,看似对变量idlist的输入做了过滤和筛查,其实然并卵。下面通过一段测试代码来详细说明,代码如下: 为什么会这样?...漏洞修复 针对该版本号的SQL注入漏洞,建议及时将CMS Made Simple更新到 2.2.10版本。在2.2.10版本中,对问题代码进行了修复,修复后的代码如下: ?...修复后的代码与之前的问题代码相比较,主要有三处改动:一、在将变量idlist的值分解为数组赋值给变量tmp之后,idlist被置为空;二、新增变量val,用于将强制类型转换后的数据传递给idlist;改变

    1.9K40

    ConcurrentDictionary 对决 Dictionary+Locking

    但如果某个资源被创建后未被回收该怎么办? 你可能会说,一个对象被创建后,如果已经对其没有任何引用,将会被垃圾回收掉。但,请再考虑下,如果下面描述的情形发生了会怎样: 使用Emit动态生成代码。...比如一个字典对象会持有一个远程服务器上一个服务的连接,该连接只能请求一次,如果请求第二次,对方服务会认为发生了某种错误,进而记录到日志中。(我工作过的一个公司中,这种条件会遭到一些法律上的处罚。)...那么,到底我们该如何比较 Dictionary + Locks 和 ConcurrentDictionary 呢? 答案是:具体依赖于锁使用策略和字典的使用方式。...如果我们有多个键值需要添加,并且所有的键不会产生碰撞并会被分配在不同的 Bucket 中,情况会如何? 起初,这个问题还是让我很好奇的,但我做了个不太合适的测试。...我已经在尝试深入的理解具体一个字典类是如何工作的(现在看来我感觉我已经非常的明确了)。 可以说,ConcurrentDictionary 中的 Bucket 和 Node 是非常简单的。

    1.6K70

    你一定遇到过Python中的无效语法:SyntaxError---常见原因以及解决办法

    当您第一次学习Python时,得到一个SyntaxError可能会令人沮丧。Python将尝试帮助您确定无效语法在代码中的位置,但是它提供的回溯可能会让您感到有些困惑。...常见的语法问题 当您第一次遇到SyntaxError时,了解为什么会出现问题以及如何修复Python代码中的无效语法是很有帮助的。...如果这段代码在一个文件中,那么Python也会让插入符号指向被误用的关键字。...对于上面的代码块,修复方法是删除选项卡并用4个空格替换它,这将在For循环完成后打印“done”。 06 定义和调用函数 在定义或调用函数时,可能会遇到Python中无效的语法。...在Python 3.8中,这段代码仍然会引发类型错误,但是现在您还会看到一个SyntaxWarning,它指示如何着手修复问题: >>> >>> [(1,2)(2,3)] :1: SyntaxWarning

    28.8K20

    Kotlin 负责人:我们是如何一步步设计 Kotlin 的?

    然而,随着这种具有非空和可空类型的直接设计开始用于实际代码,它很快就开始与 Kotlin 语言设计的另一个目标(与 Java 的无缝互操作性)产生了冲突。...空安全语言必须假设 Java 方法可以返回空,但是在空安全语言中为每个 Java 方法提供一个可为空的结果类型会导致非常冗长的代码,这件事情并不实用。...4微调和改进 大多数语言设计工作并不是关于大的特性的,而是关于到处修复小问题和不便利的。这些小问题通常是语言设计中的矛盾。首先让我们讨论一下它们可能会如何出现。...当缺陷能严重到会使之前版本的编译器崩溃或生成的代码立即崩溃时,这是幸运的。但有时,它确实可以工作,并且可能会产生一些代码来做一些明智的事情。...在旧版本的编译器和 IDE 中实现警告和自动代码修复的情况是存在的,这样受该更改影响的开发人员将会有足够的时间在新版本编译器发布之前提前替换代码(新版本编译器会对这段代码进行不同的处理。)

    1.3K20

    写了个百万级的生产 bug !!!

    Hi,大家好,我是晨光,好久好久不见呢。 最近这段时间躺地太平了,但是在雁卿同学的督促下,晨光觉得可以爬起来一下下。...本次的分享,主要是想复盘下最近的一个生产 bug,主要内容分为如下几个部分: Bug 产生的原因 Bug 修复的过程 如何避免同类 Bug 一、Bug 产生的原因 Bug 的终极原因肯定是代码写出来的,...但是为什么代码会有 bug,包括产品逻辑不通,自测场景不全以及开发失误等等,当然了,本次需求其实比较简单,所以这个 bug 是开发失误。...this.aBool = false 给该可选参数设一个默认值 原始的代码中其实会有很多的 aBool != true,而这样写的原因大概就是因为空指针吧。...甚至可能需要出一个新包来更正这个错误。那可能就是一级事故了。 当然了,flutter 还有一些别的缺点,空指针可能会导致整个页面挂掉。但是 RN 不会,最多就是某个模块出不来。

    41130

    Python 进阶指南(编程轻松进阶):八、常见的 Python 陷阱

    这一章解释了当你修改列表和字典等可变对象的内容时,它们的行为会如何异常。您将了解到sort()方法是如何不按照字母顺序对项目进行排序的,以及浮点数是如何产生舍入误差的。当你将不等式操作符!...请记住,因为这段代码只是一个创建列表的简单循环,所以您可以用列表推导式来替换它。列表推导式不会运行得更快或使用更少的内存,但它更短,但不会失去太多的可读性。...所以你不应该觉得创建一个新的列表而不是在迭代时修改原来的列表是在浪费内存。即使您的列表修改代码看似有效,它也可能是需要很长时间才能发现和修复的细微错误的来源。...要了解这是如何导致错误的,请看下面的例子,它定义了一个addIngredient()函数,将一个配料字符串添加到一个代表三明治的列表中。...Ned Batchelder 在他的演讲“实用 Unicode,或者,我如何停止痛苦?”

    1.6K50

    揪出代码的坏味道

    这种坏味道并不意味着一定存在问题,但它说明该优化程序的时候了。...1、重复代码 重复的代码之所以被认为有问题,是因为它使修改代码变得困难:对重复代码的一个副本做出修改,就必须对重复代码的每一个副本都做出修改。...比如下面的例子; expiration = time.time() + 604800 这段代码中的数字,我们就不知道为何意。...3、注释掉的代码和死代码 注释过的代码和死代码都是代码的坏味道,因为它们会形成误导,让程序员认为这些代码是程序的可执行部分。...日志文件可以记录程序的大量信息,能够用来比较一次运行产生的信息和以往运行的信息。 5、带有数字后缀的变量 如果在一系列的变量中使用数字后缀,那么可以考虑用某种数据结构代替它们,比如列表或字典。

    50420
    领券