首页
学习
活动
专区
圈层
工具
发布

Python面试中8个必考问题

上面代码输出结果将是: 很多人都会误认为list1=[10],list3=['a'],因为他们以为每次extendList被调用时,列表参数的默认值都将被设置为[]....) 这就是为什么第三打印语句输出结果是3 2 3 4、下面这段代码在Python2下输出结果将是什么?...在Python3下结果会有怎样的不同?(当然,假设上述打印语句被转换成Python3的语法) 在Python2中,上述代码输出将是 默认情况下,Python 2 自动执行整形计算如果两者都是整数。...然而在Python3中,没有此类特性, 例如,在两端都是整形的情况下,它不会执行整形除法 因此,在Python3中,将会是如下结果: 5、下面代码的输出结果将是什么?...给定以下字典的子类: 8、下面的代码能够运行么?为什么? 能够运行。 当key缺失时,执行DefaultDict类, 字典的实例将自动实例化这个数列。

1.1K100

Python 面试中8个必考问题

答案: 上面代码输出结果将是: list1 = [10, 'a'] list2 = [123] list3 = [10, 'a'] 很多人都会误认为list1=[10],list3=['a'],因为他们以为每次...为什么在改变parent.x 的同时也改变了 child2.x 的值?但与此同时没有改变 Child1.x 的值? 此答案的关键是,在 Python 中,类变量在内部是以字典的形式进行传递。...因此,在父类中设定 x = 1,让变量 x 类(带有值1)能够在其类和其子类中被引用到。这就是为什么第一个打印语句输出结果是1 1 1。...(当然,假设上述打印语句被转换成Python3的语法) 答案: 在Python2中,上述代码输出将是 5/2 = 2 5.0/2 = 2.5 5//2 = 2 5.0//2.0 = 2.0 默认情况下,...from future import division 同时要注意的是,//操作符将总是执行整形除法,不管操作符的类型。这就是为什么即使在Python 2中5.0//2.0的结果是2.0。

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

    Python 面试中的必考问题

    答案: 上面代码输出结果将是: list1 = [10, 'a'] list2 = [123] list3 = [10, 'a'] 很多人都会误认为 list1=[10],list3=[‘a’],因为他们以为每次...为什么在改变 parent.x 的同时也改变了 child2.x 的值?但与此同时没有改变 Child1.x 的值? 此答案的关键是,在 Python 中,类变量在内部是以字典的形式进行传递。...因此,在父类中设定 x = 1,让变量 x 类(带有值 1)能够在其类和其子类中被引用到。这就是为什么第一个打印语句输出结果是 1 1 1。...(当然,假设上述打印语句被转换成 Python3 的语法) 答案: 在 Python2 中,上述代码输出将是 5/2 = 2 5.0/2 = 2.5 5//2 = 2 5.0//2.0 = 2.0...from future import division 同时要注意的是,//操作符将总是执行整形除法,不管操作符的类型。这就是为什么即使在 Python 2 中 5.0//2.0 的结果是 2.0。

    79830

    文件和文件异常

    使用方法read()读取这个文件的全部内容,并将其作为一个长长的字符串存储在变量contents中。通过打印contents的值,就可将这个文本文件的全部内容显示出来。 为什么多出个空行?...3.逐行读取 读取文件时,常常需要检查其中的每一行:可能要在文件中查找特定的信息,或者要以某种方式修改文件中的文本。 要以每次一行的方式检查文件,可对文件对象使用for循环。...这里也使用了关键字with,让Python负责妥善地打开和关闭文件。为查看文件的内容,我们通过对文件对象执行循环来遍历文件中的每一行。 ? 输出: ? 打印每一行时发现空白行更多了。...每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果编写了处理该异常的代码,程序将继续运行。如果未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。...这些代码应放在else代码块中。except代码块告诉Python,如果它尝试运行try代码块中的代码时引发了指定的异常,该如何处理。

    6.7K20

    听说你会玩 Python 系列 2 - 99% 人会做错的题

    本文含 2693 字,5 图表截屏 建议阅读 15 分钟 本文是听说你会玩 Python 系列的第二篇 1 - 六酷技巧 2 - 99% 的人会做错的题 引言 题目:在不运行下面代码(Python...l 在附加 'Python' 之后的 id 和之前一样,因此列表是可更改的。...那么下面代码的运行结果就好理解了吧(注意我先用两个 print 函数打印 f() 值)。...print( f() )print( f() ) [1] [1, 1] 在运行第一行代码时,没有给参数值,则用其默认值 [],然后添加元素 1,结果是 [1],没任何问题。...在运行第二行代码时,也没有给参数值,还是用其默认值,但这个时候默认参数的类型是可更改的列表,它在第一次运行函数 f() 的时候已经变成了 [1],而这个 [1] 就更新为默认值了。

    67510

    你应该使用 Python 管理 Cron 作业

    在本教程中,您将了解 cron 作业的重要性以及为什么需要它们。你可以看一下 python-crontab,这是一个与 crontab 交互的 Python 模块。...时序语法有五个部分: minute(分钟) hour(小时) day of month(月的第几天) month(月) day of week(一周的第几天) 时序语法中的星号「*」表示每次都会运行。...创建一个名为 writeDate.py 的 Python 程序。 在 writeDate.py 中,添加代码以将当前日期和时间打印到文件中。...job = my_cron.new(command='python /home/kevin/writeDate.py') 正如你在上面的代码行中看到的,我已经指定了执行 cron 作业时要执行的命令。...接下来你需要安排 cron 在什么时间工作。 让我们安排 cron 作业每分钟运行一次。如此,在一分钟的时间间隔内,当前日期和时间将被附加到 dateInfo.txt 文件中。

    3.2K110

    Python文件和异常(一)

    在本例中,当前运行的是 file_reader.py ,因此 Python 在 file_reader.py 所在的目录中查找 pi_digits.txt 。...还可以将文件在计算机中的准确位置告诉 Python ,这样就不用关心当前运行的程序存储在什 么地方了。这称为绝对文件路径。在相对路径行不通时,可使用绝对路径。...下面的示例在 with 代码块中将文件 pi_digits.txt 的各行存储在一个列表中,再在 with 代码块外打印: filename = 'pi_digits.txt' with open(filename...在 with 代码块外,依然可使用这个变量。使用一个简单的 for 循环来打印 lines 中的各行。因为列表 lines 的每个元素都对应于文件中的一行,所以输出与文件内容完全一致。...以附加模式打开文件时,Python 不会在返回文件对象前清空文件的内容,而是将写人文件的行添加到文件末尾。如果指定的文件不存在,Python 将为你创建一个空文件。

    1.1K10

    为什么要对程序进行调试

    在软件开发中,调试是程序从“能运行”到“能正确运行”的关键步骤。...学会查看报错信息 有的同学经常会拿着一个无法运行的程序来问我:“老师,这个程序没办法运行。” 我通常会问:“为什么没法运行?你看过报错信息吗?” 大部分同学会摇头。...打印调试 打印调试是最常用的调试方法之一,是一种很基本但却很灵活很有效的调试方式。通过在代码中插入打印语句,可以观察变量的值、函数的返回值等信息,从而帮助定位问题。...我们可以在代码中插入 print() 打印语句,观察每次循环中 x、y 和 result 的值: x, y, result = [1, 1, 0] for _ in range(2): x +=...然后点击左侧的“运行和调试”图标,选择“Python Debugger”,即可开始断点调试。 在调试过程中,程序会在断点处暂停。可以使用“单步调试”按钮 逐行执行代码,观察变量的值和状态。

    36210

    精选26个Python实用技巧,想秀技能先Get这份技术列表!

    如下所示的代码段,使用了 inspect.getsource() 来打印自己的源代码。它还使用了 inspect.getsource() 来打印定义它的模块。最后一行代码打印出自己的行号。 ?...IPython 项目的代码自动完成功能就是使用Jedi来实现的。 **kwargs 在学习任何语言的过程中,都会遇到许多里程碑。使用Python,理解神秘的 **kwargs 语法可能就是其中之一。...__repr__ 在 Python 中定义类或对象时,提供一种将该对象表示为字符串的“官方”方法是很有用的。例如: ? 这使得代码的调试变得更加容易。将其添加到你的类定义中,如下所示: ?...在定义变量、函数、类等时,不需要指定数据类型。 这一特性让开发者能够快速开发项目。但是,很少有比简单的输入问题导致的运行时错误更烦人的事情了。...你在系统上都安装了哪些版本的依赖关系呢?在命令行输入如下内容: ? 现在,你可以在同一台机器上安装、运行Python不同的独立版本。

    1.1K20

    Python读取文件和写入文件

    注:此图截取自python官方文档,在Built-in Functions 中查找open( )即可查询到 b.函数close( ) 在程序最后,一般要调用此函数关闭文件,否则会造成一些潜在问题 c.文件对象方法...可以看到content果然是个字符串,因为在读取文件时,python将所有文本都解读为字符串。...但是回头看一下我们的content的内容,发现叹号后面跟了一个 \n,很明显, 这个换行符不是我文本的内容,因为read到达文件末尾时会自动返回这个,表示文本结束,所以在print打印出来的时候, 会多打印出来一个空行...使用with时,open返回的文件对象只能在with的代码块中使用,即此例中,我们的f的有效区域只在该代码块中, 但是content还是可以在代码块外面使用,只不过content只是一个字符串而已,稍加改动...我们可以看到,画绿线的部分,紧跟之前的单词,很难看,问题就出在我们之前3.1中输入那两句话时,没有在末尾添加换行符; 有时候为了防止这种之前的文档末尾遗忘加换行符,我们可以在新输入的文档最前面自己加一个换行符以示区分

    4.9K20

    AI 学习之路——轻松初探 Python 篇(二)

    一些建议 今天在群里,有的小伙伴建议我使用一些类似 PyCharm 这样的智能编译器来入门 Python,实际上我何尝不想用编译器呢,我也是老早就下载了 PyCharm,但我还是决定在学习的过程中不使用任何智能编译器...为什么一再强调这样做呢,在上大学的时候,每次学一门新的语言,老师都会强调让我们用命令行来编译代码,这样做不仅能帮助我们更好的理解一门语言的编译过程,而且一行一行敲出来可以更好的培养我们对这门语言的「语感...我们在控制台或者终端中输入「python3」将进入 Python 的交互式环境,在交互式环境中,我们可以直接输入代码,回车后,每一行代码的结果都会被打印输出出来。...我们试试在 test.py 文件中输入这段代码吧 'Python is the best language. ' 通过「python test.py」执行文件发现没有任何输出,它不会像交互式环境下输出每一行...,在 Sublime Text 中进行代码编写,在 Tools --> Build System 中选择 Python 后,通过「Command+B」(Mac) 来编译,如果有需要验证某一行代码,就复制到交互式环境中去验证

    1.1K120

    如何禁用 Ubuntu 服务器中终端欢迎消息中的广告

    你可能已经知道 MOTD,即 Message Of The Day 的开头首字母,在 Linux 系统每次登录时都会显示欢迎信息。...通常,欢迎消息包含操作系统版本,基本系统信息,官方文档链接以及有关最新安全更新等的链接。这些是我们每次通过 SSH 或本地登录时通常会看到的内容。但是,最近在终端欢迎消息中出现了一些其他链接。...正如我之前所说,其中的一个链接是不相关的,没有任何与 Ubuntu 服务器相关的细节,这就是为什么我开头称它们为广告。...如果你在 Ubuntu 系统中查看 /etc/update-motd.d/,你会看到一组脚本。一个是打印通用的 “欢迎” 横幅。下一个打印 3 个链接,显示在哪里可以找到操作系统的帮助。...从 Ubuntu 17.04 起,开发人员添加了 /etc/update-motd.d/50-motd-news,这是一个脚本用来在欢迎消息中包含一些附加信息。

    5K20

    一篇文章助力大家理解Python 代码中的垃圾回收机制

    于是,我想看看每次提取的时候,对应的 element 是哪个,但却发生了更诡异的事情,我们做一个看起来对代码不会有任何影响的改动: ?...但奇怪的事情就这样发生了,问题消失了!在图4大量打印的同一个标签,缓存的数据跟提取的数据不一致!,在图5里面却一条都没有打印。这样修改以后,GNE 的提取的结果就正确了。 但为什么会发生这种事情呢?...它似乎知道我在试图去观察它,当我尝试用代码去观察 element时,它就一切正常。当我不观察它时,它就会出问题。薛定谔的 element。 看不见的手 遇事不决,量子力学。...导致这个诡异情况发生的原因,是一个一直运行在 Python 里面,但是你常常忽略的机制——垃圾回收。 Python 会把不再使用的对象清理掉,从而释放内存。...那么每次循环,新的element对象都会新申请一块内存区域来存放数据,于是就等价于每一个不同的 element 节点对应了不同的内存地址。

    63720

    第四章3:while 循环

    《Python projects for beginners》是我所见最友好的Python入门书,前段时间我组织并与几位Python爱好者一起对此书翻译为中文,特别感谢参与翻译的这些小伙伴,你们辛苦了。...在最后一行代码中,我们将变量health值每次循环运行一次就会减1,直到变量health值接近于零。...For 虽然,我在之前已经多次解释了我们使用每个循环类型的原因,但是,再次重申这些概念仍然是有必要的。当需要计数或迭代时,通常使用for循环。在执行基于条件的操作时,通常使用while循环。...---- 无限循环 在之前的章节中,我曾提到无限循环是不好的。无限循环将使代码持续运行直到程序中断,或计算机关机或时间停止为止。知道了这些后,在我们创建项目时,请一定要避免创建无限循环的代码块。...星期三练习 1.用户输入:编写一个while循环,每次循环都会要求用户输入后才可运行,直到他们键入“quit”命令才会停止。

    1.9K20

    python twisted详解1

    为什么这么评价Windows呢),如果你想尝试在它上面学习这个系列,抱歉,如果出了问题,我无法提供任何帮助。 并且假设你已经安装了近期版本的Python和Twisted。...我所提供的示例示例代码是基于Python2.5和Twisted8.2.0。 你可以在单机上运行所有的示例代码,也可以在网络系统上运行它们。但是为了学习异步编程的机制,单机上学习是比较理想的。...你会注意到每次服务器都会发送过一行的内容过来。一旦诗歌传送完毕,服务器就会关闭这条连接。 默认情况下,服务器只会监听本地回环的端口。...,这是由于在异步模式的客户端中,每次接收到一段服务器发送来的数据都要打印一次提示信息,而服务器是将诗歌分成若干片段发送出去的。...好了,我们上面所说的其实就是Twisted—健壮、跨平台实现了reactor模式并含有很多附加功能。 在第三部分中,实现Twisted版的下载诗歌服务时,我们将开始写一些简单的Twisted程序。

    88010

    笨办法学 Python3 第五版(预览)(三)

    在一行的末尾加上冒号是告诉 Python 你将创建一个新的代码“块”,然后缩进四个空格告诉 Python 哪些代码行在该块中。这与你在本书的前半部分创建函数时所做的事情完全相同。...变量在循环开始时由 for 循环 定义,每次迭代时将其初始化为当前循环元素。 为什么 for i in range(1, 3): 只循环两次而不是三次?...它简单地将元素附加到列表的末尾。打开 Python shell 并尝试用自己创建的列表做几个示例。每当遇到这样的情况时,总是尝试在 Python shell 中进行交互操作。...为了可视化这一点,在循环中到处放置print语句,打印出 Python 在循环中运行的位置以及这些点上变量的设置。在循环之前、顶部、中间和底部编写print行。研究输出并尝试理解正在进行的跳跃。...看看 int() 的工作原理会有提示。 常见学生问题 救命!这个程序怎么运行的!? 当你在理解一段代码时遇到困难时,只需在每一行上面写一个英文注释,解释该行的作用。保持你的评论简短并与代码相似。

    76910
    领券