当前位置: 首页 > news >正文

中国铁工建设有限公司网站广州在线网站制作推荐

中国铁工建设有限公司网站,广州在线网站制作推荐,wordpress 蜘蛛统计,做网站为职业生存不下去Python 很容易学会#xff0c;但很难掌握。你可以在几天内了解它的基本语法#xff0c;但是要能够用 Python 开发出足够好的商业软件#xff0c;多年的实践是必须的。因为#xff0c;无论你使用哪种编程语言#xff0c;你都必须对其复杂的内部机制有足够的了解#xff0c…Python 很容易学会但很难掌握。你可以在几天内了解它的基本语法但是要能够用 Python 开发出足够好的商业软件多年的实践是必须的。因为无论你使用哪种编程语言你都必须对其复杂的内部机制有足够的了解才能写出健壮的程序。本文分享 10 个针对高级开发人员的 Python 面试题。它可以测试你对 Python 内部机制理解的程度。一、Python中的整数缓存机制面试官请解释在 Python shell 解释器上执行的代码的以下结果 a256 b256 a is bTrue x257 y257 x is yFalse回答这是因为 Python 中的整数缓存机制。为了节省时间和内存成本Python 总是预先加载 [-5, 256] 范围内的所有小整数。因此[-5, 256] 中的所有整数都已经保存在内存中。当声明此范围内的新整数变量时Python 只是将缓存的整数引用到它不会创建任何新对象。因此对结果的解释是当变量 a 和 b 分配给 256 时它们被引用到存储 256 的相同内存位置。他们指向同一个对象。当变量 a 和 b 被分配给 257 时它们是不同内存位置的两个不同对象因为 257 不在小整数缓存范围内。由于 is 运算符要比较两个变量的内存位置a is b 应该输出 True x is y 应该输出 False。二、如何避免嵌套循环面试官下面的程序使用了嵌套循环你将如何优化它list_a [1, 2020, 70]list_b [2, 4, 7, 2000]list_c [3, 70, 7]for a in list_a: for b in list_b: for c in list_c: if a b c 2077: print(a, b, c)# 70 2000 7回答可以使用 itertools 中的 product 函数对其进行优化:from itertools import productlist_a [1, 2020, 70]list_b [2, 4, 7, 2000]list_c [3, 70, 7]for a, b, c in product(list_a, list_b, list_c): if a b c 2077: print(a, b, c)# 70 2000 7因为 product 函数生成输入迭代的笛卡尔积。它可以帮助我们在很多场景中避免嵌套循环。三、 类方法和静态方法面试官在 Python 类中类方法和静态方法有什么区别回答类方法是 Python 类中的第一个参数是类本身的方法。我们用 cls 这个参数来表示。类方法不仅可以由实例调用也可以由类直接调用。静态方法是 Python 类中没有类或实例参数的方法。因为静态方法不包含有关特定类或实例的参数。我们可以将其定义为类外的独立函数并将其用作类外的其他普通函数。可以阅读为什么 classmethod 比 staticmethod 更受宠了解更多。四、eval 函数的使用面试官能否用一行 Python 代码中实现一个函数它将接收两个数字 a 和 b 一个字符串 op。op 代表算术运算符例如 “”、“-”、“*”和“/” 。函数需要返回 op 的计算结果 a op b。回答def cal(a, b, op): return eval(f{a} {op} {b})面试官好那你能谈谈 eval 函数的缺点以及为什么它不适合在生产中使用吗回答在生产环境中我们应该仔细检查用户输入以避免意外问题。eval 函数会立即执行输入这可能造成远程代码执行这是非常危险的强烈建议不要在生产环境使用 eval即使你做了很多安全检查。可以阅读前文看完此文你还会用 eval 吗了解更多。五、抽象类面试官在面向对象编程中有一个概念叫做抽象类。Python 也支持抽象类吗回答支持。Python 标准库有个模块 abc它为抽象类提供功能。通过继承类 abc.ABC可以将类定义为抽象类借助于装饰器 abc.abstractmethod我们可以将方法定义为抽象方法。例如from abc import ABC, abstractmethodclass Animal(ABC): abstractmethod def move(self): pass六、函数传参的机制面试官Python 是按值还是按引用传参回答既不是按值传递也不是按引用传递Python 自有一套机制我们都知道 Python 的世界里万物皆对象从这个方面讲传递给函数的都是对象的地址这有点像引用的概念但是 Python 的对象分为可变对象和不可变对象不可变对象就是不可修改的对象例如数字、字符串、元组在不可变对象上的自增操作会新创建一个对象。如果从其他编程语言过来学 Python 的可以简单的这么理解对于不可变对象是按值传递函数内部不会修改不可变对象对于可变对象是按引用地址传递函数内部的修改会影响到参数本身。可以阅读前文Python基础系列-可变/不可变数据类型了解更多。七、Python 中的垃圾回收面试官Python 如何收集垃圾无用的对象回答Python 使用一种称为引用计数的方法来决定何时需要在内存中收集对象。简单来说Python 会计算每个对象的引用计数当一个对象没有引用时会自动收集。推荐这两篇文章来理解 Python 的垃圾回收学习一下 Python 的垃圾回收Python 是如何管理内存的八、在 Python 函数中接收无限数量的参数面试官请解释函数参数中星号的以下用法def func(*args, **kwargs): pass回答按照惯例如果无法清楚地确定其参数的数量我们会像示例一样定义一个 Python 函数。以单个星号为前缀的参数 args 表示可以将任意数量的位置参数保存到元组中args 就是这个元组的名称。以两个星号为前缀的参数 kwargs 表示可以将任意数量的位置参数保存到字典中kwargs 就是这个字典的名称。九、 Lambda 函数面试官Python 中的 lambda 函数是什么你能否提供一个利用 lambda 函数强大功能的示例回答lambda 函数或称为匿名函数是一个没有函数名的简单 Python 函数。编写 lambda 函数的模板是lambda 参数表达式使用它的一个很好的场景是 sort 函数比如leaders [Warren Buffett, Yang Zhou, Tim Cook, Elon Musk]print(leaders)# [Warren Buffett, Yang Zhou, Tim Cook, Elon Musk]leaders.sort(keylambda x: len(x))print(leaders)# [Tim Cook, Yang Zhou, Elon Musk, Warren Buffett]十、Python 中的一些推导式面试官Python中的推导式是什么回答推导式技巧是 Python 中的语法糖。它可以帮助轻松生成特定的数据结构。Python 中有四种类型的推导式列表推导式生成器推导式集合推导式字典推导式例如我们可以如下生成字典Entrepreneurs [Yang, Mark, steve, jack, tom]D1 {id: name for id, name in enumerate(Entrepreneurs) if name[0].isupper()}print(D1)# {0: Yang, 1: Mark}
http://www.w-s-a.com/news/732824/

相关文章:

  • 制作简单门户网站步骤中国建设局网站查询
  • 漳州专业网站建设网站建设的面试要求
  • 有哪些网站是封面型汕头网站上排名
  • 自动优化网站软件没有了做的新网站做百度推广怎么弄
  • 高陵县建设局网站商标查询网站
  • 郑州建设网站哪家好东莞网络公司排行榜
  • 成都网站开发费用做行程的网站
  • 做地铁建设的公司网站手机网站首页布局设计
  • 福建亨立建设集团有限公司网站搜狗网页游戏大厅
  • 设计网站musil访问量大的网站选择多少流量的服务器何时
  • 公司网站包括哪些内容新网站怎样做外链
  • 淘宝宝贝链接怎么做相关网站广州好蜘蛛网站建设
  • 长春网站制作网页博山区住房和城乡建设局网站
  • 云南大学网站建设解析到网站怎样做
  • 网站维护的要求包括锦溪网站建设
  • 金站网.营销型网站学校安全教育网站建设
  • 临沂市建设局网站公示军事新闻头条2023
  • 购物网网站建设lamp 做网站
  • 做网站网站庄家html5网站开发技术
  • 无锡门户网站制作电话广告设计公司的未来
  • 白云区专业网站建设网页设计模拟试题答案
  • 毕业设计网站代做多少钱制作旅游网站设计概述
  • 网站开发维护运维无人在线电视剧免费观看
  • 电子商务网站建设开题报告展馆网站建设
  • 门户网站建设的背景和意义手机网站前
  • 国内免费视频素材无水印素材网站国家最新消息
  • 襄阳seo站内优化学做网站论坛教程
  • 文明网站建设情况报告wordpress伪静态配置
  • 牙科网站模板个人微信网站建设
  • 厦门公司注册网站dw做简单小说网站