Python的定位可以概括为三个词:"优雅"、"明确"、"简单",所以Python程序看上去总是简单易懂,入门容易。Python既支持面向过程的函数编程也支持面向对象的抽象编程。在计算机内部,Python解释器把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。同时可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。Python提供了丰富的标准库。Python的确是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。鉴于此,鄙人就想去学一下Python。
1.4 数字和表达式
交互式Python解释器可以当做非常强大的计算器使用,如下所示:
>>>2+2
4
>>>1/2
0
当使用两个整数使用除法时,发现小数部分被截断,只留下整数部分。如果参与除法的两个数至少有一个为浮点数,结果亦为浮点数:
>>>1.0/2.0
0.5
>>>1/2.0
0.5
除了使用浮点数外,还可以在程序前加上如下语句,也可以实现上述功能:
>>>from __future__ import division
当执行上述语句在执行整数相除时,不会截断小数部分,介于此Python提供了两外一个用于实现整除的操作符(双斜线(//))
除此之外,还有取余运算符(%)、幂运算符(**)
Python可以处理非常大的整数。普通整数不能大于2147483647(也不能小于-2147483648),如果真的需要大数,可以用长整型。长整型书写方法和普通整数一样,但是结尾有个L。
Python支持十六进制和八进制,在十六进制前加0x(0xAF=175)表示十六进制,加0(010=8)表示八进制
1.5 变量
在Python中,变量名可以包括字母、数字和下划线(_)。变量不能以数字开头,所以Plan9是合法变量,而9Plan不是。在使用变量之前,需要对其赋值,毕竟使用没有值的变量也没意义。
1.6 语句
1.7 获取用户输入
获取用户输入可以用input()函数,如下所示:
>>>input("The meaning of life: ")
The meaning of life: 42
42
在执行input语句后,打印出字符串"The meaning of life:",以此作为提示符等待用户输入,input函数的结果值就是输入的值,它会自动在最后一行打印出来。
1.8 函数
函数就像可以用来实现特定功能的小程序一样。Python的很多函数都能做很奇妙的事情。事实上,也可以自己定义函数。通常会把pow等标准函数称为内建函数。像pow用于求幂(如2^3=pow(2,3)),abs用于取绝对值(如abs(-1)=1),round用于求四舍五入为最接近的整数值(如round(4.5)=5)
1.9 模块
可以把模块想象成导入到Python以增强其功能的扩展。需要使用特殊的命令import来导入模块,如下所示:
>>>import math
>>>maath.floor(32.9)
32.0
用import导入模块,然后按照"模块.函数"的格式使用这个模块的函数,int函数把浮点数转化为整数:
>>>int(math.floor(32.9))
32
在确定自己不会导入多个同名函数(在不同模块导入)的情况下,可以使用import命令的另外一种形式:
>>>from math import sqrt
>>>sqrt(9)
3.0
在使用了"from模块import函数"这种形式的import命令之后,就可以直接使用函数,而不需要模块名作为前缀。事实上,可以使用变量来引用函数。比如,通过foo=math.sqrt进行复制,然后就可以使用foo来计算平方根了:foo(4)的结果为2.0。
math模块的sqrt函数不能求负数的平方根,否则会报错,即其只能处理浮点数而不能处理虚数,虚数的平方根需要使用cmath模块:
>>>import cmath
>>>cmath.sqrt(-1)
1j
注意,这里并没有使用from...import...语句。因为一旦使用了这个语句,就没法使用普通的sqrt函数了,即函数冲突。因此,除非真的需要使用from这个形式的模块导入语句,否则应该坚持使用普通的import。
Python语言本身提供了对负数的支持:
>>>>(1+3j)*(9+4j)
(-3+31j)
1.11 字符串
字符串是值,就像数字一样:
>>>"Hello,world!"
'Hello,world!'
当打印出的时候使用了单引号,和双引号是一样的,再看:
>>>"Let's go!"
"Let's go!"
>>>>'"Hello,world!"she said'
'"Hello,world!"she said'
上面字符串包含了单引号(或者佳作撇号),这时候就不能用单引号将这个字符串括起来了,否则会报错。除了使用双引号外,还可以对字符串中的单引号进行转义:
>>>'Let\'s go!'
"Let's go!"
拼接字符串使用'+'号,例如:
>>>"Hello,"+"world!"
'Hello,world!'
在Python中,可以使用str、repr和反引号将值转化为字符串。函数str让字符串更易于阅读,而repr(和反引号)则把结果字符串转化为合法的Python表达式。
input函数和raw_input函数的区别在于raw_input会把所有的输入当做原始数据,然后将其放入字符串中:
>>>input("Enter a number:")
Enter a number: 3
3
>>>raw_input("Enter a number:")
Enter a number: 3
'3'
如果需要些一个非常非常长的字符串,它需要跨多行,那么可以使用三个引号代替普通引号:
>>>print '''This is a very long string.
It continues here.
And it's not over yet.
"Hello,world!"
Still here.'''
也可以使用三个双引号,用这种方法,可以在字符串之中同时使用单引号和双引号,而不需要使用反斜线进行转义。
原始字符串对于反斜线的使用不会过分挑剔,如下所示:
>>>path=r'C:\workplace\python\demo.py'
>>>print path
C:\workplace\python\demo.py