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

27 个问题,告诉你Python为什么这么设计

为什么Python字符串是不可变的? 有几个优点。 一个是性能:知道字符串是不可变的,意味着我们可以在创建时为它分配空间,并且存储需求是固定不变的。这也是元组和列表之间区别的原因之一。...其次,这意味着如果要显式引用或从特定类调用该方法,不需要特殊语法。...(b) 当读到写有len(X)的代码时,就知道它要求的是某件东西的长度。这告诉我们两件事:结果是一个整数,参数是某种容器。...从Python 1.6开始,字符串变得更像其他标准类型,当添加方法时,这些方法提供的功能与始终使用String模块的函数时提供的功能相同。...如果向目录中添加了一两个文件,对此输出进行操作的函数通常不会中断。 元组是不可变的,这意味着一旦创建了元组,就不能用新值替换它的任何元素。列表是可变的,这意味着您始终可以更改列表的元素。

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

    Python 语法基础

    使用缩进,而不是括号 Python编程有着严格的缩进要求,强烈建议使用四个空格作为默认的缩进,也可以使用tab代替四个空格。 万物皆对象 Python语言的一个重要特性就是它的对象模型的一致性。...每个数字、字符串、数据结构(列表、元组、字典等)、函数、类、模块等等,都是在Python解释器的自有“盒子”内,它们被认为是Python对象。 每个对象都有类型(例如,字符串或函数)和内部数据。...,但是我们又不可能精通所有的库,为了达到快速编程的目的,我们使用库中的函数时,一定要首先掌握函数的参数及其含义、函数 功能和函数返回值。...对于许多对象,这意味着它有一个__iter__魔术方法,其它更好的判断方法是使用iter函数: def isiterable(obj): try: iter(obj)...意味着这些对象或包含的值可以被修改。但也有些对象是不可变的,例如字符串和元组。 我们要记住,可以修改一个对象并不意味就要修改它,这被称为副作用。例如,当写一个函数,任何副作用都要在文档或注释中写明。

    65410

    python零基础系统学习教程之Python 变量类型

    这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。...100 # 赋值整型变量 miles = 1000.0 # 浮点型 name = "John" # 字符串 print counter print miles print name ''' 在学习过程中有什么不懂得可以加我的...他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。...print tuple[0] # 输出元组的第一个元素 print tuple[1:3] # 输出第二个至第四个(不包含)的元素 print tuple[2:...02 学习python过程中有不懂的可以加入我的python零基础系统学习交流秋秋qun:934109170,与你分享Python企业当下人才需求及怎么从零基础学习Python,和学习什么内容。

    62320

    对于初学者来说,有哪些好的 Python 示例?

    这意味着序列中的最后一个值的索引为 -1,倒数第二个值的索引为 -2,依此类推。 当您想要从可迭代对象的末尾(右侧)选取值时,可以利用负索引来获益。...列表 元 列表是可编辑的,这意味着它们可能是可变的。 元组是不可变的,这意味着我们不能更改元组的元素。 列表相对较慢。 元组在效率方面击败了列表。...例 [10, ‘tutorialspoint’, 4.89] 元组 − 元组是按特定顺序排列的一组项目。与列表不同,元组是不可变的,这意味着它们无法更改。...break - 当满足条件时,循环终止,控制权转移到下一条语句。 pass - 当代码块需要在语法上有效但您不想运行它时,请使用此 pass 语句。实质上,这是一个空操作。...当它被执行时,什么都不会发生。 continue - 当满足指定条件时,将控制发送到循环的开头,从而允许跳过循环当前执行的某些部分。 如何将字符串中的每个字符转换为小写字母?

    2K40

    27 个问题,告诉你Python为什么这么设计?

    为什么Python字符串是不可变的? 有几个优点。 一个是性能:知道字符串是不可变的,意味着我们可以在创建时为它分配空间,并且存储需求是固定不变的。这也是元组和列表之间区别的原因之一。...(b) 当读到写有len(X)的代码时,就知道它要求的是某件东西的长度。这告诉我们两件事:结果是一个整数,参数是某种容器。...从Python 1.6开始,字符串变得更像其他标准类型,当添加方法时,这些方法提供的功能与始终使用String模块的函数时提供的功能相同。...但是,Python在退出时清理内存并尝试销毁每个对象。 如果要强制 Python 在释放时删除某些内容,请使用 atexit 模块运行一个函数,强制删除这些内容。 为什么有单独的元组和列表数据类型?...如果向目录中添加了一两个文件,对此输出进行操作的函数通常不会中断。 元组是不可变的,这意味着一旦创建了元组,就不能用新值替换它的任何元素。列表是可变的,这意味着您始终可以更改列表的元素。

    3.1K20

    python数据分析学习笔记—python基础知识

    7、输出 输出,print用于打印输出时,其后跟变量&字符串,print+字符串时,字符串需要用引号包含,print+变量时不需要引号。...这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。...元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。...函数 1、定义 函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为调用函数。...接下来是一块语句,它们是函数体,注意缩进。 2、函数参数: 参数在函数定义的圆括号内指定,可以有一个,也可以有多个,当有多个的时候用逗号分隔。函数中的参数名称为形参,而提供给函数调用的值称为实参。

    1.8K51

    使用 Python 和 Pygame 制作游戏:第一章到第五章

    pygame.Color对象 您需要知道如何表示颜色,因为 Pygame 的绘图函数需要知道您想要用什么颜色绘制。三个或四个整数的元组是一种方法。另一种方法是作为pygame.Color对象。...如果我们没有main()函数,并且将其代码放在全局范围内,那么游戏将在我们导入它时自动启动,这实际上不会让我们在其中调用单个函数。 这就是为什么代码在一个我们称为main()的单独函数中。...您可能不明白这为什么重要。毕竟,只要代码能运行,谁在乎它对人类程序员来说是难还是容易呢? 然而,关于软件的重要一点是,它很少被单独留下。当您创建自己的游戏时,您很少会“完成”程序。...(不包括80,因为range()函数的第二个参数是到达但不包括的。)这意味着整个滑动动画将在 10 帧内完成,这意味着它在 10/30 秒内完成(三分之一秒),因为游戏以 30 FPS 运行。...()返回None时,这意味着传递给它的坐标不在四个按钮之上。

    1.4K10

    Python用Pillow(PIL)进行简单的图像操作

    但是当alpha值为0时,无论是什么颜色,该颜色都不可见,可以理解为透明。 ? ? 图像的坐标表示 图像中左上角是坐标原点(0, 0),这和平常数学里的坐标系不太一样。...这样定义的坐标系意味着,X轴是从左到右增长的,而Y轴是从上到下增长。 在Pillow中如何使用上述定义的坐标系表示一块矩形区域?许多函数或方法要求提供一个矩形元组参数。...元组参数包含四个值,分别代表矩形四条边的距离X轴或者Y轴的距离。顺序是(左,顶,右,底)。右和底坐标稍微特殊,表示直到但不包括。可以理解为[左, 右)和[顶, 底)这样左闭右开的区间。...这如果之后还会用到原图的信息,由于信息被改变就很麻烦。所以paste前最好使用copy()复制一个副本,在此副本操作,不会影响到原图信息。...虽然在程序里原图信息已改变,但由于保存文件时用的其他文件名,相当于改变没有生效,所以查看的时候原图还是没有改变的。 ? 这回再看原图,没有改变了。这就保证了之后再次使用im时,里面的信息还是原汁原味。

    2.7K100

    吴恩达深度学习中文版笔记:人脸识别和神经风格转换

    而历史上,当深度学习只有一个训练样例时,它的表现并不好,让我们看一个直观的例子,并讨论如何去解决这个问题。...然而,当Anchor图片与Negative图片(Negative意味着是非同一个人)对比时,你会想让他们的距离离得更远一点。...并且选择这样的三元组还可以增加你的学习算法的计算效率,如果随机的选择这些三元组,其中有太多会很简单,梯度算法不会有什么效果,因为网络总是很轻松就能得到正确的结果,只有选择难的三元组梯度下降法才能发挥作用...,你可以提前计算好,那么当一个新员工走近时,你可以使用上方的卷积网络来计算这些编码(编号5),然后使用它,和预先计算好的编码进行比较,然后输出预测值y^。...我希望你知道,在一次学习时,你需要什么来训练人脸验证,或者人脸识别系统。

    1.2K110

    吐血总结!50道Python面试题集锦(附答案)「建议收藏」

    每当导入模块时,也会查找PYTHONPATH以检查各个目录中是否存在导入的模块。解释器使用它来确定要加载的模块。 Q9、什么是python模块?Python中有哪些常用的内置模块?...其中is:当2个操作数为true时返回true(例如:“a”是’a’) not:返回布尔值的倒数 in:检查某个元素是否存在于某个序列中 Q34、Python中help()和dir()函数的用法是什么?...Q35、当Python退出时,为什么不清除所有分配的内存? 当Python退出时,尤其是那些对其他对象具有循环引用的Python模块或者从全局名称空间引用的对象并没有被解除分配或释放。...当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用* args。...这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。 Q48、Python有OOps概念吗? Python是一种面向对象的编程语言。这意味着可以通过创建对象模型在python中解决任何程序。

    10.6K10

    python面试题目及答案(数据库常见面试题及答案)

    每当导入模块时,也会查找PYTHONPATH以检查各个目录中是否存在导入的模块。解释器使用它来确定要加载的模块。 Q9、什么是python模块?Python中有哪些常用的内置模块?...其中is:当2个操作数为true时返回true(例如:“a”是’a’) not:返回布尔值的倒数 in:检查某个元素是否存在于某个序列中 Q34、Python中help()和dir()函数的用法是什么?...Q35、当Python退出时,为什么不清除所有分配的内存? 当Python退出时,尤其是那些对其他对象具有循环引用的Python模块或者从全局名称空间引用的对象并没有被解除分配或释放。...当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用* args。...这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。 Q48、Python有OOps概念吗? Python是一种面向对象的编程语言。这意味着可以通过创建对象模型在python中解决任何程序。

    11.3K20

    吐血总结!100个Python面试问题集锦

    这100道面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。 Q1、Python中的列表和元组有什么区别? ? Q2、Python的主要功能是什么?...Q35、当Python退出时,为什么不清除所有分配的内存? 当Python退出时,尤其是那些对其他对象具有循环引用的Python模块或者从全局名称空间引用的对象并没有被解除分配或释放。...当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用* args。...这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。 Q48、Python有OOps概念吗? Python是一种面向对象的编程语言。这意味着可以通过创建对象模型在python中解决任何程序。...这意味着多线程并不能让程序运行的更快。

    9.9K20

    Python官方二十七问,你知道个啥?

    为什么 Python 字符串是不可变的? 有几个优点。 一个是性能:知道字符串是不可变的,意味着我们可以在创建时为它分配空间,并且存储需求是固定不变的。这也是元组和列表之间区别的原因之一。...其次,这意味着如果要显式引用或从特定类调用该方法,不需要特殊语法。...(b) 当读到写有 len(X)的代码时,就知道它要求的是某件东西的长度。这告诉我们两件事:结果是一个整数,参数是某种容器。...从 Python 1.6 开始,字符串变得更像其他标准类型,当添加方法时,这些方法提供的功能与始终使用 String 模块的函数时提供的功能相同。...如果向目录中添加了一两个文件,对此输出进行操作的函数通常不会中断。 元组是不可变的,这意味着一旦创建了元组,就不能用新值替换它的任何元素。列表是可变的,这意味着您始终可以更改列表的元素。

    2.5K20

    TF-char5-TF2高级操作

    为单个数值时,如10,表示切割 为 10 份 当 num_or_size_splits为 List 时,每个元素表示每份的长度,如[2,4,2,2]表示 切割为 4 份,每份的长度分别为 2,4,2,2...需要补充的信号开始或者结束处填充足够的特定数值;通过tf.pad(x, axis)实现 a = tf.constant([1,2,3,4,5]) b = tf.constant([9,8,7]) b...= tf.pad(b, [[6,0]]) # 填充 tf.stack([a,b], axis=0) 在NLP中,需要加载不同长度的句子,需要设定一个阈值来固定最大的句子长度 total_words =...模块提供经典数据的自动下载、管理、加载等功能 数据集合对象 tf.data.Dataset 数据加载 datasets.xxx.load_data() 其中,CIFAR10、MNIST数据集返回的是两个元组...# 预处理函数实现在 preprocess 函数中,传入函数引用即可 train_db = train_db.map(preprocess) def preprocess(x, y): # 自定义的预处理函数

    2.7K10

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    为什么 Python 字符串是不可变的? 有几个优点。 一个是性能:知道字符串是不可变的,意味着我们可以在创建时为它分配空间,并且存储需求是固定不变的。这也是元组和列表之间区别的原因之一。...其次,这意味着如果要显式引用或从特定类调用该方法,不需要特殊语法。...” (b) 当读到写有 len(X)的代码时,就知道它要求的是某件东西的长度。这告诉我们两件事:结果是一个整数,参数是某种容器。...从 Python 1.6 开始,字符串变得更像其他标准类型,当添加方法时,这些方法提供的功能与始终使用 String 模块的函数时提供的功能相同。...如果向目录中添加了一两个文件,对此输出进行操作的函数通常不会中断。 元组是不可变的,这意味着一旦创建了元组,就不能用新值替换它的任何元素。列表是可变的,这意味着您始终可以更改列表的元素。

    2.7K10

    Python 核心设计理念27个问题及解答

    为什么 Python 字符串是不可变的? 有几个优点。 一个是性能:知道字符串是不可变的,意味着我们可以在创建时为它分配空间,并且存储需求是固定不变的。这也是元组和列表之间区别的原因之一。...其次,这意味着如果要显式引用或从特定类调用该方法,不需要特殊语法。...” (b) 当读到写有 len(X)的代码时,就知道它要求的是某件东西的长度。这告诉我们两件事:结果是一个整数,参数是某种容器。...从 Python 1.6 开始,字符串变得更像其他标准类型,当添加方法时,这些方法提供的功能与始终使用 String 模块的函数时提供的功能相同。...如果向目录中添加了一两个文件,对此输出进行操作的函数通常不会中断。 元组是不可变的,这意味着一旦创建了元组,就不能用新值替换它的任何元素。列表是可变的,这意味着您始终可以更改列表的元素。

    3.4K21

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    为什么 Python 字符串是不可变的? 有几个优点。 一个是性能:知道字符串是不可变的,意味着我们可以在创建时为它分配空间,并且存储需求是固定不变的。这也是元组和列表之间区别的原因之一。...其次,这意味着如果要显式引用或从特定类调用该方法,不需要特殊语法。...” (b) 当读到写有 len(X)的代码时,就知道它要求的是某件东西的长度。这告诉我们两件事:结果是一个整数,参数是某种容器。...从 Python 1.6 开始,字符串变得更像其他标准类型,当添加方法时,这些方法提供的功能与始终使用 String 模块的函数时提供的功能相同。...如果向目录中添加了一两个文件,对此输出进行操作的函数通常不会中断。 元组是不可变的,这意味着一旦创建了元组,就不能用新值替换它的任何元素。列表是可变的,这意味着您始终可以更改列表的元素。

    2.6K20

    Python | 5分钟搞定 Python3 元组

    元组和列表很像,不过元组中的值是不可修改的。也正因为如此,当你在代码中使用元组时,就意味着告诉他人你不想集合中的数据被修改。...当对kelp元组和numbers使用len函数时,我们会得到如下输出: ? 我们得到上述输出是因为kelp有四个元素,numbers有13个元素: ?...上述实例中元组的长度比较小,当元组较长时len()可以得到元素的具体数量。...这意味着不能在元组中添加或者删除值,某一数据项的值也不能修改。 不过,我们可以通过‘+’等操作符来构造新元组。...总结 元组是一种有序的数据类型,它不能被修改,因其运行速度比列表快,所以使用元组的代码会有一定的优化。当你和其他人共同合作编写代码时,使用元组类型意味着你不想自己的数据序列被修改。

    1.1K20

    Python 密码破解指南:20~24

    当消息中的相同字母(在我们的示例中为)用密钥中的相同字母(在我们的示例中为ABC和XYZ)加密时,会出现重复序列,这发生在消息和密钥中的相似字母“排列”并加密到相同序列时。...我们需要对这个列表进行排序,使具有最大英语频率匹配分数的元组排在最前面。这意味着我们希望按照索引1的值对freqScores中的元组进行反向(降序)排序。...但是检查英语频率匹配有助于确定每个子项的四个最可能的字母。继续 ROSEBUD 的例子,这意味着我们只需要检查4 ** 7,或者 16384 个可能的密钥,这比 80 亿个可能的密钥有了巨大的改进!...当您想要快速找到某个数字范围中的所有质数时,最好使用这种筛选算法。这比以前用试除法算法逐个检查每个数要快得多。...这就是为什么第 59 行上的for循环从blockSize - 1开始,然后在每次迭代中减去1,直到(但不包括)-1。这意味着最后一次迭代中i的值是0。

    1.4K30
    领券