有两种方法可以运行 python 程序:python 解析器(或称 python 运行环境)中交互运行和源文件运行
打开终端,输入 python3
命令打开 python 解析器,将出现提示符 >>>
。
输入 print('Hello world')
语句,然后回车,将看到 Hello word
输出字样。下面是在 linux 环境下的运行结果:
>>> python3
Python 3.2.3 (default, Dec 18 2012, 16:23:22)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello world')
Hello world
>>>
退出 python 解析器的方法是:在 linux 系统中按下 Ctrl-d 或者输入 exit()
(不要忘了后面的一对括号)并回车就可退出;在 Windows 系统下,按下 Ctrl-z 并回车即可。
打开文本编辑器,新建一名为 hello.py 的源文件(后缀 .py 无关紧要)并输入以下文本:
print('Hello World')
打开终端并进入源文件所在的目录,然后输入 python3 hello.py
命令即得到“Hello World”字样输出,运行结果如下:
>>> python3 hello.py
Hello World
在 hello.py 文件的第一行加入以下文本内容(被称为 hashbang):
#!/usr/bin/env python3
所以现在的 hello.py 文件内容如下:
#!/usr/bin/env python3
print('Hello World')
然后赋予此文件具有可执行权限:
$ chmod a+x hello.py
然后就可以直接在终端中运行源文件了:
$ ./hello.py
Hello World
上面的命令必须在源文件所在的目录内才能成功运行,所以使用了 ./
,要想在任意目录中运行此源文件,需要先将包含源文件的目录添加到 PATH
变量中。比如源文件所在目录为 /home/user01/bin
,则强其添加到 PATH
变量中:
$ export PATH=$PATH:/home/user01/bin
之后就可以在终端中直接输入 hello.py
来运行 python 程序了。
Python 中的注释信息提示符为井号 #
,任何位于 #
右边的信息都被认为为注释信息。例如:
print(‚Hello World‚) # Note that print is a function
# Note that print is a function
print(‚Hello World‚)
常量的值无法改变,有数字常量,比如 5、3.14 等;字符串常量,例如 ’This is a string’、"It’s a string!" 等。
数字又分为两种类型——整型和浮点型。
整型没有小数点,例如 2、100 等,而浮点型有小数点,例如 3.14、52.3E-4,其中 52.3E-4 表示 52.3*10-4 。
注意:python 没有 long
类型,int
类型可以使任意长度的整型数字。
字符串是由一系列字符(比如字母、数字、下划线等)组成的字符序列,通常括在引号中——单引号、双引号及三引号。
单引号(''
):’Quote me on this’。
双引号(""
):"Quote me on this"。
三引号("""
或者 '''
):可以将一个多行字符串用三引号括起来,而且在其中可以任意使用单引号和双引号,比如:
"""
Usage: thingy [OPTIONS]
-h Display this usage message
-H hostname Hostname to connect to
"""
注意:
char
类型。格式化方法
如果想用其它信息创建字符串,可以使用 format()
函数实现。例如创建 str_format.py 文件并添加以下内容:
age = 20
name = 'Swaroop'
print('{0} was {1} years old when he wrote this book'.format(name, age))
print('Why is {0} playing with that python?'.format(name))
将输出以下信息:
$ python3 str_format.py
Swaroop was 20 years old when he wrote this book
Why is Swaroop playing with that python?
format()
是字符串对象的一个成员函数,用于将一些变量转化为字符串并做相应的替换,即将 {}
依次替换为由后面的变量转换称的字符串。其中 {}
中的数字编号是从 0 开始的,但不是必需的,即下面的内容和上面的内容具有完全相同的输出效果:
age = 20
name = 'Swaroop'
print('{} was {} years old when he wrote this book'.format(name, age))
print('Why is {} playing with that python?'.format(name))
其实可以通过以下语句实现相同的效果:
name + ’ is ’ + str(age) + ’ years old’
但是用 format()
更优雅,不容易出错,且自动转化变量为字符串类型。
变量,顾名思义就是值可以改变的量,变量是标识符(Identifier)的一种。
Python 变量的使用只需要将一个值(字面常量或变量等)赋给变量名即可,无需声明变量类型。比如文件 var.py 有以下声明语句:
i = 5
print (i)
j = i + 1
print (j)
i = 'Hello world!'
print (i)
输出:
python3 var.py
5
6
Hello world!
标识符是用于唯一标识对象的名称。标识符命名规则:
myname
和 myName
是两个不同的标志符。变量具有多种数据类型,最常用的数字和字符串,还有可以创建任意自定义类型的类(class)类型。
一般意义上,Python 把程序中的所有东西都称为对象,包括数字、字符串以及函数等。
物理行就是在程序源文件中所看到的一行内容,而逻辑行是 Python 所处理的单条声明语句。Python 隐式的假设每一个物理行都对应一个逻辑行,而且也鼓励每行只有一条声明语句,但是一个物理行也可以包含多个逻辑行,即一行中有多条声明语句,此时需要显式利用分号(;)来将每条逻辑声明语句分割开(物理行中的最后一个逻辑声明语句末尾可以不加分号)。比如:
i = 5
print(i)
等同于:
i = 5;
print(i);
也等同于:
i = 5; print(i);
也等同于:
i = 5; print(i)
建议:每行尽量只有一条声明语句,尽量不使用分号,如果逻辑行语句太长可以使用反斜线(\)将单行分成多行。比如:
s = ‘This is a string. \
This continues the string.’
等同于:
s = ‘This is a string. This continues the string.‘
print\
(i)
等同于:
print(i)
Python 对于缩进的控制非常严格,因为 python 是用缩进来分割语句块(block)的(C语言是由花括号),而缩进是由空白符(空格符和制表符)来实现的。
同一级别的语句要具有相同的缩进量,而且不能随意使用缩进,否则容易出错。比如语句前面不能随便加空格。
Python 的大多数声明语句(即逻辑行)都会包括表达式,表达式由操作符和操作数(operand)组成。
+:将两个对象相加。对于数字就是求和,对于字符串就是合并。
-:相减和取负数。
*:乘倍。对于数字就是做乘积,对于字符串就是乘倍扩展字符串。比如:'la'*3 得到 'lalala'。
**:求幂。比如:2**3 就是 2 的 3 次幂。
/:做除法。是数学意义上的除法而不是圆整除法。比如:4/3 得到 1.3333333333333 而不是 1(C 语言就是 1)。Python 中的圆整除法的运算符为 //
。
注意:在 python2 中除法的默认结果就是圆整除法,即当两个数字都为整数时其结果为圆整结果。对 python3 来说默认为一般除法。
//:圆整除法。用来求商数,比如 4//3 其商数为 1,余数为 1。
%:求余,不仅限于整数。比如:8%3 为 2;-25.5%2.25 为 1.5。
<<:位左移。相当于乘 2。
>>:位右移。相当于除 2。
&:按位求与。
|:按位求或。
^:按位亦或。
~:按位取反。
<:小于。
>:大于。
<=:小于等于。
>=:大于等于。
==:等于。
!=:不等于。
not:逻辑非。x = True
,则 not x
为 False
。
and:逻辑与。
or:逻辑或。
规则就是 var = var operation expression 可以简写为:var operation= expression。
比如:a = a * 3
可以简写为 a *= 3
按照优先级顺序由低到高以此为(处于同一行中的操作符具有相同的优先级):
要想改变操作符的优先级顺序,可以使用小括号来实现。比如 ((2+3)+3)*4
。
具有同一优先级的操作符一般具有从左向右的结合性。但是也有从有向左结合的操作符,比如赋值操作符(=)。
python 语言对大小写敏感,所以 print
和 Print
是不一样的函数名。
获取帮助 help()
:
获取函数功能(比如 print()
函数)的帮助信息,直接输入 help(print)
;获取操作符(比如 return
)的帮助信息,直接输入 help(‘return’)
,需要将操作符用引号括起来。