2015/8/26 Python基础(1):基本规则及赋值
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://www.cnblogs.com/SRL-Southern/p/4769324.html
2015/8/26 Python基础(1):基本规则及赋值相关推荐
- python最基本的规则是什么_2015/8/26 Python基础(1):基本规则及赋值
Python有如下的基本规则: #后表示注释 \n是行分隔符 \是继续上一行,将过长语句分开 :分号将两个语句连接在一行中 :冒号将代码头和体分开 代码块用缩进块的方式体现 不同缩进深度分隔不同的代码 ...
- 2015/8/29 Python基础(3):数值
数字提供了标量储存和直接访问,是不可更改类型,每次变更数值会产生新的对象.Python支持多种数字类型,包括整型.长整型.布尔型.双精度浮点.十进制浮点和复数. 在Python中,变量并不是一个盒子, ...
- python入门编程题库-Python随笔30:Python基础编程练习题25~26
注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. Python编程 Python基础练习题25:合并两个列 ...
- 二十六. Python基础(26)--类的内置特殊属性和方法
二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...
- python基础读后感_Python基础教程【读书笔记】 - 2016/6/26
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第一波:第6章 抽象 [总览] 介绍函数.参数parameter.作用于scope概念,以及递归概念. [6.1] 函数 ...
- python基础个人总结
1.Python的可变与不可变 不可变类型:数字.字符.元组(一旦改变,变量所指向的地址发生变化)可变类型:列表.字典.集合(在地址块内部进行修改,变量指向的地址不发生变化) 2.装饰器: def f ...
- Python基础+进阶(万字总结,基础案例+执行结果)
Python基础篇 第一章:基础语法 输出相关: 基本输出案例 print("HelloWorld")# 执行结果: ''' HelloWorld ''' 转义字符 # 转义字符& ...
- python基础(一)
一,Python介绍 1,python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打 ...
- Python 基础二
一.Python介绍 1.python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打 ...
最新文章
- 物流信息管理系统MySQL设计,物流管理系统的SQL数据库设计(含代码)
- mysql8.0编译安装
- vue 生产word_nodejs(officegen)+vue(axios)在客户端导出word文档
- 【OpenSSL】OpenSSL之MD5
- 解决 Angular 官网下载的库 Schematics 在 windows 环境不支持 .. 的临时解决方案
- python3 枚举_Python3枚举类如何处理重复名称?
- 比手工模型快10~100倍,谷歌揭秘视频NAS三大法宝
- Linux 搜索 查找find命令 详解
- SQL Server抛出异常信息 RAISERROR
- ubuntu下c 调用java_ubuntu下使用JNI Java调用C++的例子
- 采用微服务和云计算建立有效的物联网模型
- Altova XMLSpy2011的破解出现的问题
- C语言实现扫雷游戏完整代码
- java毕业设计TELL情感社交系统Mybatis+系统+数据库+调试部署
- linux 删除文件彻底删除文件夹,linux下彻底删除文件
- 机器学习(7)——安然数据集分析
- dsp和通用计算机的区别,汽车dsp和功放区别
- 计算两个向量的逆时针夹角
- scaner从外网到内网域渗透笔记
- 在同一台机运行多个mysql 服务 多个主/从在同一主机_在同一台机运行多个Mysql 服务 多个主/从在同一主机...
热门文章
- JS:ES11新特性
- 移动开发—媒体查询(Media Query)
- yy主播旁边的机器人_YY上三位“聪明”主播,伽柏垄断主播设备,其余两位成为老板...
- 一次性存入多少钱就可以有资格跟银行商谈利息了?
- 一览众山小的上一句是什么,怎么理解一览众山小的意思?
- 10个人做抖音,8个做不起来,为啥?
- 月薪2万是一种怎样的人生体验?
- 某电子工厂老板感叹创业开厂人生
- 我在30岁之前做了三件骄傲的事
- 如果实现了一种不用暂停世界的GC算法,会对现在编程语言产生什么影响?