最近要开始新的项目,工做又开始忙起来了,不过仍是天天要抽时间来写博客,但不可能作到日更,由于一篇博客,写的时间仍是挺长的。Gitbook 同时更新喔。javascript
每种语言都有本身的语法,不论是天然语言仍是咱们的计算机编程语言,Python 也不例外,编辑器或者解析器根据符合语法的程序代码转换成 CPU 可以执行的机器码,而后执行。html
Python 的语法比较简单,采用缩进方式。由于以前是写 JAVA 或者 C++ 偏多,忽然没了大括号和要注意缩进,是有点不习惯的,不过仍是能够接受的。并且要养成使用 4 个空格的缩进,能够在文本编辑器设置 Tab 自动转换为 4 个空格。java
以 # 开头的语句是注释,其余每一行都是一个语句,当语句以冒号 : 结尾时,缩进的语句视为代码块。要注意的是 Python 程序是大小写敏感的,若是写错了大小写,程序会报错。python
更多的说明能够看看以前的文章:Python代码规范中的简明概述编程
Python 能够处理任意大小的整数,固然包括负整数,在 Python 程序中,整数的表示方法和数学上的写法如出一辙,例如:1
,100
,-8080
,0
,等等。编程语言
计算机因为使用二进制,因此,有时候用十六进制表示整数比较方便,十六进制用 0x 前缀和 0-9,a-f 表示,例如:0xff00,0xa5b4c3d2,等等。编辑器
浮点数也就是小数,之因此称为浮点数,是由于按照科学记数法表示时,一个浮点数的小数点位置是可变的。整数和浮点数在计算机内部存储的方式是不一样的,整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的偏差。ui
字符串是以 '' 或 "" 括起来的任意文本,好比 'abc'
,"123"
等等。请注意,'' 或 "" 自己只是一种表示方式,不是字符串的一部分,所以,字符串 'abc'
只有 a,b,c 这 3 个字符。这个其余的编程语言也是相似的。编码
在上面那里提到,字符串能够用 ''
或者 ""
括起来表示。但是有些时候,咱们字符串自己就包含了 ''
或者 ""
,怎么办呢?spa
那这个时候就须要对字符串的某些特殊字符进行“转义”,Python 字符串用 \
进行转义。跟 JAVA 也是同样的。
经常使用的转义字符还有:
\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符自己复制代码
具体例子:
那上面就有一个问题呢,若是一个字符串包含不少须要转义的字符,对每个字符都进行转义会很麻烦。这里为了应付这种状况,咱们能够在字符串前面加个前缀 r
,表示这是一个 raw 字符串,里面的字符就不须要转义了。
可是,要注意的一点是,可是r'...'
表示法不能表示多行字符串,也不能表示包含'
和"
的字符串。
若是要表示多行字符串,能够用'''...'''
表示,固然你也还能够在多行字符串前面添加 r
,把这个多行字符串也变成一个raw字符串
咱们都知道计算机只能处理数字,若是要处理文本,就必须先把文本转换为数字才能处理。最先的计算机在设计时采用8个比特(bit)做为一个字节(byte),因此,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,好比大写字母 A 的编码是 65,小写字母 z 的编码是 122。
若是要表示中文,显然一个字节是不够的,至少须要两个字节,并且还不能和 ASCII 编码冲突,因此,中国制定了 GB2312 编码,用来把中文编进去。
相似的,日文和韩文等其余语言也有这个问题。为了统一全部文字的编码,Unicode 应运而生。Unicode 把全部语言都统一到一套编码里,这样就不会再有乱码问题了。
Unicode 一般用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只须要把高字节所有填为 0 就能够。
由于 Python 的诞生比 Unicode 标准发布的时间还要早,因此最先的Python 只支持 ASCII 编码,普通的字符串 'ABC' 在 Python 内部都是 ASCII 编码的。
Python 在后来添加了对 Unicode 的支持,以 Unicode 表示的字符串用u'...'
表示。
不过在最新的 Python 3 版本中,字符串是以 Unicode 编码的,也就是说,Python 的字符串支持多语言。就像上面的例子同样,个人代码中没有加u'...'
,也能正常显示。
不过因为 Python 源代码也是一个文本文件,因此,当你的源代码中包含中文的时候,在保存源代码时,就须要务必指定保存为 UTF-8 编码。当Python 解释器读取源代码时,为了让它按 UTF-8 编码读取,咱们一般在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-复制代码
第一行注释是为了告诉 Linux/OS X 系统,这是一个 Python 可执行程序,Windows 系统会忽略这个注释;
第二行注释是为了告诉 Python 解释器,按照 UTF-8 编码读取源代码,不然,你在源代码中写的中文输出可能会有乱码。
申明了 UTF-8 编码并不意味着你的 .py 文件就是 UTF-8 编码的,必须而且要确保文本编辑器正在使用 UTF-8 without BOM 编码
布尔值和布尔代数的表示彻底一致,一个布尔值只有 True
、 False
两种值,要么是 True
,要么是 False
,在 Python 中,能够直接用 True、False 表示布尔值(请注意大小写),也能够经过布尔运算计算出来。
布尔值能够用 and
、or
和 not
运算。
and
运算是与运算,只有全部都为 True,and 运算结果才是 True。
or
运算是或运算,只要其中有一个为 True,or 运算结果就是 True。
not
运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
基本上每种编程语言都有本身的特殊值——空值,在 Python 中,用 None 来表示
方法 | 说明 |
---|---|
int(x [,base ]) | 将x转换为一个整数 |
long(x [,base ]) | 将x转换为一个长整数 |
float(x ) | 将x转换到一个浮点数 |
complex(real [,imag ]) | 建立一个复数 |
str(x ) | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
eval(str ) | 用来计算在字符串中的有效 Python 表达式,并返回一个对象 |
tuple(s ) | 将序列 s 转换为一个元组 |
list(s ) | 将序列 s 转换为一个列表 |
chr(x ) | 将一个整数转换为一个字符 |
unichr(x ) | 将一个整数转换为 Unicode 字符 |
ord(x ) | 将一个字符转换为它的整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
在 Python 程序中,变量是用一个变量名表示,能够是任意数据类型,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头,好比:
a=88复制代码
这里的 a
就是一个变量,表明一个整数,注意一点是 Python 是不用声明数据类型的。在 Python 中 =
是赋值语句,跟其余的编程语言也是同样的,由于 Python 定义变量时不须要声明数据类型,所以能够把任意的数据类型赋值给变量,且同一个变量能够反复赋值,并且能够是不一样的数据类型。
这种变量自己类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,若是赋值的时候类型不匹配,就会报错。例如 Java 是静态语言。
咱们来看下这段代码,发现最后打印出来的变量 b 是 Hello Python
。
这主要是变量 a 一开始是指向了字符串 Hello Python
,b=a
建立了变量 b ,变量 b 也指向了a 指向的字符串 Hello Python
,最后 a=123
,把 变量 a 从新指向了 123
,因此最后输出变量 b 是 Hello Python
Python 容许同时为多个变量赋值。例如:
a = b = c = 1复制代码
以上实例,建立一个整型对象,值为 1,三个变量被分配到相同的内存空间上。
固然也能够为多个对象指定多个变量。例如:
a, b, c = 1, 2, "liangdianshui"复制代码
以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "liangdianshui" 分配给变量 c。