Python笔记(一)--数据类型

有的人用“Python还用学么?”来形容Python,看来Python实在是一门简单易学的语言,特别是在你已经掌握一门高级语言之后。但是千万不能因此就真的“不学”,完整的理论知识是你之后“敲键盘如有神”的基本条件。这里罗列一些我没见过的小知识点和它与java等语言的不同之处。仅作为个人笔记,不供参考。

浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
顺便一提,与java不同,9/4输出结果为2.59//4输出结果为2

字符串–转义与换行

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’’表示’’内部的字符串默认不转义

1
2
>>> print(r'换行/n还是不换行,这是一个问题')
换行/n还是不换行,这是一个问题

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用’’’…’’’的格式表示多行内容.在终端repl里这样用,IDE里就用不着了。

Boolean

0和0.0表示False其余为True

布尔值不外乎True和False,但Python中整数和浮点数也能进行 Boolean 数据操作, 具体规则,如果该值等于 0 或者 0.0 将会返回 False,其余的返回 True。

1
2
3
4
con = 10
while con:
print(con)
con -= 1

逻辑运算符and or not

布尔值可以用and、or和not运算,而非 & | ! 。如果你测试发现它们也能用的话,那只是巧合,因为& | !是位运算符,比如1 > 2 & 1事实上是1 > (2 & 1)结果为false, 它是按照位运算之后的结果。如果是逻辑运算1 > 2 and 1,结果应该是true。

Python中还支持x < y < z(PS:还有这种操作!),等同于x < y and y < z,虽然有人认为第一种操作可能会让其他语言的程序猿看不懂,但是PyCharm却会在第二种格式中提示你将其转为第一种格式,因为更简洁,一贯的JetBrains智能处女座风格。

空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

变量

变量在程序中就是用一个变量名表示了,可以是任意数据类型,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,

常量

所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量,如PI = 3.14159265359
但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。

格式化

在Python中,采用的格式化方式和C语言是一致的,用%实现,如'Hello, %s' % 'world'
常见的占位符有:
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数

1
2
3
4
>>> '%2d-%02d' % (3,1)
' 3-01'
>>> '%d-%.2f' % (3,1.5647)
'3-1.56'

参考文章

  1. 莫烦Python
  2. 廖雪峰的Python教程