Python基础(1):基本规则及赋值「建议收藏」

Python基础(1):基本规则及赋值「建议收藏」Python有如下的基本规则:#后表示注释\n是行分隔符\是继续上一行,将过长语句分开;分号将两个语句连接在一行中:冒号将代码头和体分开代码块用缩进块的方式体现不同缩进深度分隔不同的代码

大家好,又见面了,我是你们的朋友全栈君。

Python有如下的基本规则:   #后表示注释   \n是行分隔符   \是继续上一行,将过长语句分开   ;分号将两个语句连接在一行中   :冒号将代码头和体分开   代码块用缩进块的方式体现   不同缩进深度分隔不同的代码块   Python文件用模块的形式组织

缩进推荐风格,缩进四个空格宽度,避免使用制表符。

 

赋值语句 Python中,主要赋值运算符是等号( = ) 赋值不是直接将一个值赋给一个变量,对象是通过引用传递的。不管变量是新创建的还是已经存在的,都是将该对象的引用赋值给变量。

C语言中,赋值语句可以当成一个表达式,可以返回值。但在Python中,赋值语句不会返回值。这使得这样的语句是非法的

复制代码
>>> y = (x = x + 1) # assignments not expressions! File "<stdin>", line 1 y = (x = x + 1) ^ SyntaxError: invalid syntax >>> if (a = 3): SyntaxError: invalid syntax
复制代码

这就避免了判断语句中,将 == 符号误写成 = 的问题。是一个很好的功能。

同样的Python中链式赋值并没有问题。

复制代码
>>> y = (x = x + 1) # assignments not expressions! File "<stdin>", line 1 y = (x = x + 1) ^ SyntaxError: invalid syntax >>> if (a = 3): SyntaxError: invalid syntax
复制代码

同时还有增量赋值符

+=   -=   *=   /=   %=   **=
<<=  >>=   &=   ^=   |=

相对于普通赋值不仅仅是写法改变,最有意义的变化是第一个对象仅被处理一次。 Python不支持x++或–x这样的前置/后置自增/自减运算 多元赋值

复制代码
>>> x, y, z = 1, 2, 'a string' >>> x 1 >>> y 2 >>> z 'a string' >>> x, y, z (1, 2, 'a string')
复制代码

赋值时将等号两边的对象都看成元组

使用多元赋值的方法可以不使用中间变量直接交换表量的值

>>> x , y = 1, 2
>>> x, y
(1, 2) >>> x, y = y, x >>> x, y (2, 1)

 

专用下划线标识符

  _xxx 不用’from module import *’导入   __xxx__系统定义名字   __xxx  类中私有变量名

风格提示: 避免用下划线作为变量名的开始 下划线对于解释器有特殊的意义,而且是内建标识符所使用的符号,所以应避免下划线作为变量名的开始。一般来讲_xxx被看做私有的,在模块或类外不可使用,所以当变量是私有时,用_xxx是很好的习惯。因为__xxx__有特殊含义,所以普通变量命名应避免这种风格

关于变量的赋值部分 Python的变量的赋值都是引用。这设计到它的内存管理机制。Python使用了引用计数这一简单技术。内部记录着所有使用中的对象各有多少引用。 当对象被创建时,就创建一个引用计数,当对象不背需要时,即引用计数为0时就被垃圾回收。 当对象被创建并赋值给变量时,该对象的引用计数就被设置为 1 当同一个对象又被赋值给其它变量时,或者作为参数传递给函数,方法或类实例时,或者被赋值为一个窗口对象的成员时,该对象的一个新的引用或者称别名,就被创建(引用计数加1)

x = 2
y = x

第一句创建了一个整数对象并引用赋值给x。x是第一个引用,该对象的引用计数设置为 1 。当y = x 语句执行时,并没有为y创建一个新对象,而是该对象的引用计数增加了1次。这是引用计数的增加。同样还有作为参数被函数调用,或者对象被加到某个容器对象中时。 而当变量被赋值给另一个对象时,原对象的引用计数也会自动减 1

foo = 3
foo = '123'

当3被创建赋值给foo时,引用计数是1 。 当它重新赋值给对象’123’时,3的引用计数自动减1 当本地引用离开了作用范围,比如函数结束时。 对象别名被显式的销毁 对象别名被赋值给其他对象 对象从一个窗口对象中移除 窗口对象本身被销毁 这几个情况都会减少引用计数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155977.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 《智慧城市时空大数据平台建设技术大纲(2019版)》解析——未完,待续

    《智慧城市时空大数据平台建设技术大纲(2019版)》解析——未完,待续2月18日,自然资源部办公厅发布关于印发《智慧城市时空大数据平台建设技术大纲(2019版)》我们先来回顾下之前国家对于智慧城市建设的指导性纲要文件:1、2015年,《智慧城市时空信息云平台建设技术大纲》2、2017年,《智慧城市时空大数据与云平台建设技术大纲》3、2019年,《智慧城市时空大数据平台建设技术大纲》从2015年开始,智慧城市历经从“时空信息云平台”到“时空大数据与云平…

    2022年6月6日
    160
  • 如何在vue组件中引入外部的css和js文件[通俗易懂]

    如何在vue组件中引入外部的css和js文件[通俗易懂]在使用vue框架开发时,我们都知道一个组件中可以同时写HTML、css、js代码,只需三个标签而已,如下:但是要真把所有的代码都写入一个组件文件当中,那么代码量是非常大的,极不便于修改和维护,这时就需要把css样式和js代码写到其他文件下,再引入组件当中。具体方法如下:在组件中引入css文件:<style>@importurl(css文件路径)</style>在组件中引入js文件:首先需要将我们…

    2022年10月8日
    6
  • 什么是内存(一):存储器层次结构「建议收藏」

    什么是内存(一):存储器层次结构「建议收藏」首先给大家讲个段子:2015年开网吧,买了DDR48g内存条400多根,一根180块,今年2017年,网吧赔了20多万,昨天我把网吧电脑全卖了。内存条600一根,居然赚回了我网吧的钱,感谢三星

    2022年8月6日
    10
  • 双IP双线路实现方式 先来说说双线单IP和双线双IP的区别

    双IP双线路实现方式 先来说说双线单IP和双线双IP的区别双 IP 双线路实现方式双 IP 双线路实现方式是指在一台服务器上安装两块网卡 分别接入电信网线与网通网线并设置一个网通 IP 与一个电信 IP 这样一台服务器上就有了两个 IP 地址 需要在服务器上添加网通或电信的路由表来实现网通用户与电信用户分别从不同的线路访问 双 IP 双线路具有常用的两种使用方式 1 nbsp ICP 用户在网站设置两个 IP 地址不同的链接 网通用户点击网通 IP 访问服务器 电信用户点击电信 IP 访问 2 nbsp 使用 BIND9 DNS 服务器软件 对不同的 IP 地址请求返回不同的服务器 IP 的功能来实现网通用户请求域名时返回网通

    2026年1月17日
    1
  • 从零开始学回溯算法

    从零开始学回溯算法本文在写作过程中参考了大量资料 不能一一列举 还请见谅 回溯算法的定义 回溯算法也叫试探法 它是一种系统地搜索问题的解的方法 回溯算法的基本思想是 从一条路往前走 能进则进 不能进则退回来 换一条路再试 解题的一般步骤是 1 定义一个解空间 它包含问题的解 2 利用适于搜索的方法组织解空间 3 利用深度优先法搜索解空间 4 利用限界函数避免移动到不可能产生解的子空间 问

    2025年8月25日
    3
  • js如何将json字符串转成json对象_前端json字符串转json对象

    js如何将json字符串转成json对象_前端json字符串转json对象vardata=[{"id":1,"startTime":"2017-12-1210:36:50","endTime":"2018-02-0200:00:00","value":"0.26","jobCode":"zd_test_02_171212103650"

    2022年10月7日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号