Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。它是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议[1]。
Python语法简洁清晰,具有丰富和强大的库。被称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。
Python中认为一切都是对象,一个模块,一个函数甚至一个变量都是一个对象。
Python中的逻辑行和物理行
物理行是在编写程序时所看见的行,逻辑行是Python解释执行时的单个语句,Python默认每个物理行对应一个逻辑行。
一个物理行最后加上反斜杠"\"代表这个逻辑行没有完成,下一个物理行还是属于这上一个物理行的语句的逻辑行。
如果想在一个物理行中使用多个逻辑行,那么需要使用分号";"来特别的分隔各个逻辑行。
在Python中,建议每个物理行只写一个逻辑行,这样可以在编写代码时避免使用分号,一般在Python程序中不会使用分号。
缩进 :空格和制表符在Python中是很重要的,Python会根据不同的缩进层次来判断决定语句的分组,错误的缩进会导致程序出错,并且在编写程序中只是用一种缩进的方式(如统一使用制表符缩进,或者统一使用两个空格缩进)。
Python运算符:
+ :加 - :减 * :乘 / :除,结果是浮点数 *:用在数字中为乘运算,用在字符串,列表,元组,字典等数据类型中表示重复多少次,如list*5返回一个把list列表重复5次后的列表。 // :整除(地板除),只取结果整数部分 % :取模(余) ** :求幂 > :大于 < :小于 == :等于 >= :大于等于 <= :小于等于 != :不等于 & 按位与 | 按位或 ^ 按位异或 ~ 按位取反 << 左移动 >> 右移动 not :逻辑非 and :逻辑与 or :逻辑或 成员测试(判断一个对象是否在一个序列):in not in 同一性测试is not is 三元运算符:n=x if x<y else y,这个语句表示如果x<y成立则n=x,否则n=y。 #:井号开头的行是python的注释语句 '''(三个单引号)或"""(三个双引号):多行注释
PS:python中的and和or
与其他语言的操作有点不同,python中的and和or操作并不返回布尔值,而是返回它们实际进行比较的值之一。
注:此处提一下,Python下只有0、''、[]、()、{}、None在布尔环境下为假,其他任何都为真。
在and运算时,自左至右演算各个表达式的布尔值,如果某个值为假,and会返回第一个假值(短路,后面的值不会计算);如果所有的值都为真,那么会返回最后一个值。
类似的,or的演算逻辑是如果表达式都为假,or返回最后一个假值;如果表达式中有真值,会返回第一个真值(短路,后面的值不会计算)。
>>> 'a' and 'b' 'b' >>> 'a' and 'b' and '' and 'c' '' >>> 'a' or 'b' 'a' >>> '' or [] or {} {}
其他编程语言一般都有一个三元运算符(bool ? a : b),有人就想到在Python下用"bool and a or b"这样的形式模仿三元运算符
>>> 1 and "first" or "second" 'first' >>> 0 and "first" or "second" 'second'
但是,由于这种表达式单单只是进行布尔逻辑运算,并不是语言的特定构成,这是and-or技巧和真正的三元运算符语法非常重要的不同。如果a为假,那么这个表达式中即使bool运算为真,结果仍然是返回b的值,这显然不是我们预期的结果
>>> 1 and '' or 'second'
'second'
所以"bool and a or b"表达式当a在布尔环境中为假时,不会按照正常的三元运算符运算。所以我们需要确保a的值不会为假,最常用的方式是使a成为[a]、b成为[b],然后使用返回值列表的第一个元素,所以就是a或b中的某一个。
>>> a = ""
>>> b = "second"
>>> (1 and [a] or [b])[0] #[a]和[b]都不是非空列表,所以它们都为真
- 本文固定链接: https://www.qingheluo.com/pythonjianjieheyunsuanfu/
- 转载请注明: qingheluo 于 清河洛 发表