安装python
windows系统中安装python
1.打开web浏览器,访问http://www.python.org
2.点击Download链接
3.建议选择2.7.9点击download,选择windows 64位下载后默认安装即可
4.把python加入到windows的环境变量里
5.win+r 运行输入 cmd,在cmd里输入python即可表示安装成功
linux下默认有安装python,直接输入python即可
交互解释器
启动python时,就会出现下面类似的提示
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
这是控制计算机的第一步,说的白话一点就是把你输入的python语言解释给计算机让他去执行
如果熟悉其他计算机语言,可能习惯于每行分好结束,python则不用,一行就是一行,不管多少。如果喜欢的话,可以加上分号,但是不会有任何用处(除非一行还有更多的代码)
术语“打印”意为在屏幕上输出文本,并非打印机打印出来
算法是什么
计算机能够理解的语言——算法。“算法”不过是“步骤”或者“食谱”的另外一种文绉绉的说法——对于如何做某事的一份详细描述。
1.4 数字和表达式
整数除法3.0版本的之前的python是这样的
>>>1 / 2
0
整数除法只留下整数,有些时候这个功能很有用,如果只需要普通出发的话。有两个有效的解决办法:要么有实数(包含小数点的数)而不是整数进行运算,要么上python改变除法的执行方式。
>>>1.0 / 2.0
0.5
>>>1 / 2.0
0.5
>>>1.0 / 2
0.5
>>>1 / 2.
0.5
希望python“只”执行普通的除法,那么可以在程序(后面会讲到编写完整的程序)前加上以下语句
>>>from_future_import division
实现整除的操作符——双斜线,就算是浮点数,双斜线也会进行整除
>>>1.0 // 2.0
除了算术运算符(加、减、乘、除),还有一个非常有用的运算符:
>>>1 % 2
1
这是取余(模除)运算符——x%y的结果为x除以y的余数。eg:
>>> 10 / 3
3
>>> 10 % 3
1
>>> 9 / 3
3
>>> 9 % 3
0
>>> 2.75 % 0.5
0.25
对于如每10分钟检查一次的操作,那么。取余运算就非常有用了,直接检查时间%10的结果是否为0即可
最后一个运算符就是幂(乘方)运算符:
>>> 2 ** 3
8
>>> -3 ** 2
-9
>>> (-3) ** 2
9
长整数
python可以处理非常大的整数
>>> 1000000000000000000000000000000000
100000000000000000000L
普通整数不能大于 2 147 483 647(也不能小于-2 147 483 648),如果需要更大的整数,可以使用长整数。长整数的书写方法和普通整数一样,但结尾有个L
这在旧版本的python很有用(2.2版本以前的python)
1.4.1 十六进制和八进制
在python中,十六进制数
>>> 0xAF
175
>>>
而八进制数则是:
>>> 010
8
十六进制和八进制数的首位数字都是0
变量
变量是一个需要熟知的概念,变量基本就是代表(或者引用)某值的名字,如用 x 代表 3
>>> x = 3
>>> print x #打印一下
3
这样的操作称为赋值,数值3被赋给了变量 x 。
>>> x * 3
6
变量名可以包括字母、数字和下划线(_)变量不能以数字开头,所以Plan9是合法变量,而9Plan不是。
语句
表达式就是某件事情,而语句是做某件事情(即告诉计算机做什么)
语句不是表达式,所以没有值可供交互式解释器打印出来
>>> x = 3 #语句
>>>
变量就像是临时“存储器”
获取用户输入
通常编写程序让别人用,我们无法预测用户会给程序提供什么值。那么,看看非常有用的 input 函数吧
>>> input("The meaning of life: ")
The meaning of life: 42
42
交互解释器执行了第一行的input(…)语句。他打印出了字符串”The meaning of life: “提示用户输入什么
>>> x = input("qing ni fu zhi x: ")
qing ni fu zhi x: 123
>>> print x
123
qing ni fu zhi x: 来提醒用户输入值,又把用户输入的值赋值给了 x
eg:
>>> x = input("x: ")
x: 34
>>> y = input("y: ")
y: 42
>>>print x * y
1428
函数
曾经用过的幂运算符(**)来计算乘方,事实上,可以用一个函数来代替这个运算符,这个函数就是pow:
>>> 2 ** 3
8
>>> pow(2,3)
8
函数就像小程序一样,可以用来实现特定的功能。python有很多函数,他们能做很多奇妙的事情,你也可以自定义函数。因此,我们通常会把pow等标准函数称为内建函数。
上例使用的函数的方式叫做调用函数。给他提供参数,他会返回值给用户
比如使用abs函数可以得到数的绝对值,round函数则会把浮点数四舍五入为最接近的整数值
>>> abs(-10)
10
>>> 1/2
0
>>> round(1.0/2.0)
1.0
模块
可以把模块想象成导入到python以增强其功能的扩展
如32.9还没到33,想取整为32,python有实现这样功能的函数(称为floor),但是不能直接使用,得在某个模块中找到floor函数
>>> import math
>>> math.floor(32.9)
32.0
import导入了模块,然后按照“模块.函数”的格式使用这个模块的函数
如果转换为整数32而不是浮点数32.0,可以使用int函数
>>> int(math.floor(32.9))
32
希望不要在每次调用函数的时候都写上模块的名字,那么可以使用import的另外一种形式:
“from模块import函数”这种形式的命令之后,可以直接使用函数,而不需要模块名为前缀
>>> from math import sqrt
>>> sqrt(9)
3.0
除非真的需要from这个形式的模块导入语句,否则应该坚持使用普通的import
cmath和复数
sqrt函数用于计算一个数的平方根
>>> from math import sqrt
>>> sqrt(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
不能求负数的平方根?真的不可以么?其实可以,那为什么不能用sqrt?因为它只能处理浮点数。他们由另外一个叫做cmath(即complex math,复数)的模块来处理。
>>> import cmath
>>> cmath.sqrt(-1)
1j
注意,我们这里并没有使用from…import…语句。因为一旦使用了这个语句,就没办法使用普通的sqrt函数了。除非真的需要from这个形式的模块导入语句,否则应该坚持使用普通的import
1j是个虚数,虚数均已j(或者J)结尾,就像长整数使用L一样。
>>> (1+3j) * (9+4j)
(-3+31j)
举个列子,Python语言本身就提供了对附属的支持
通过命令提示符运行脚本
C:\python hello.py
$ python hello.py
让脚本像普通程序一样运行
在脚本首行前面加上#!,在其后加上用于解释脚本程序的绝对路径
#!/usr/bin/env python
放在脚本的首行即可
chmod a+x hello.py
让脚本具有可执行属性,然后 ./hello.py
第一个程序是这样的,很简单
print "Hello,world!"
print是打印,那么“Hello,world”是什么呢?是字符串(即“一串字符”)
单引号字符串和转义引号
单引号与双引号,事实上,没有区别。为什么两个都可以用呢?因为在某些情况下,他们会派上用场:
>>>peint 'Let's go'
SyntaxError: invalid syntax
在这里字符串为’Let’,Python并不知道如何处理后面的s(也就是该行余下的内容)
这时候双引号就派上了用场。另外一个选择就是:用反斜线(\)对字符串中的引号进行转义
>>> print "Let's go"
Let's go
>>> print 'Let\'s go"
Let's go
Python会明白中间的单引号是字符串中的一个字符,而不是字符串结束的标记(及时如此。Python也会在打印字符串的时候在最外层使用双引号),有的读者可能已经猜到了,对双引号也可以使用相同的方式(\)转义。如果希望打印一个包含单双引号的字符串
>>> print 'Let\'s say "hello,world"?'
拼接字符串
拼接字符串就像进行加法运算一样
>>> "hello," + "world!"
'hello,world!'
>>> x = 'hello,'
>>> y = 'world!'
>>> x + y
'hello,world!'
字符串表示,str和repr
所有通过Python打印的字符串还是被引号括起来的,这是因为Python打印值的时候会保持该值在Python代码中的状态。如果使用print语句,结果就不一样了:
>>> "Hello,world"
'Hello,world'
>>> 10000L
10000L
>>> print "Hello,world!"
Hello,world!
>>> print 10000L
10000
值被转换为字符串的两种机制:一种是通过str函数,他会把值转换为合理姓氏的字符串,以便用户可以理解;另一种是通过repr函数,他会创建一个字符串,以合法的Python表达式的形式来表示值。
>>> print repr("Hello,world!") 创建
'Hello,world!'
>>> print repr(10000L) 创建
10000L
>>> print str("Hello,world!") 转换
Hello,world!
>>> print str(10000L) 转换
10000
repr(x)也可以写作 反引号x反引号实现。如果希望打印一个包含数字的句子,那么反引号就很有作用了。比如:
>>> temp = 42
>>> print "The temperature is " + temp
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> print "The temperature is " + `temp`
The temperature is 42
在Python3.0中,已经不再使用反引号了。因此,你应该坚持使用repr。