Windows下的Python安装简单一些,从官方网站下载相应的安装程序就可以了,当然也有更方便的已经包含了很全的第三方库的选择,WinPython:
WinPython
并且是绿色的,直接执行就可以用了。
Python基本语法
There should be one– and preferably only one –obvious way to do it.
对于一个特定的问题,应该只用最好的一种方法来解决。
基本数据类型和运算
基本数据类型
Python中最基本的数据类型包括整型,浮点数,布尔值和字符串。类型是不需要声明的,比如:
a = 1 # 整数
b = 1.2 # 浮点数
c = True # 布尔类型
d = "False" # 字符串
e = None # NoneType
其中#是行内注释的意思。最后一个None是NoneType,注意不是0,在Python中利用type函数可以查看一个变量的类型:
type(a) #
type(b) #
type(c) #
type(d) #
type(e) #
注释中是执行type()函数后的输出结果,可以看到None是单独的一种类型NoneType。在很多API中,如果执行失败就会返回None。
变量和引用
Python中基本变量的赋值一般建立的是个引用,比如下面的语句:
a = 1
b = a
c = 1
a赋值为1后,b=a执行时并不会将a的值复制一遍,然后赋给b,而是简单地为a所指的值,也就是1建立了一个引用,相当于a和b都是指向包含1这个值的这块内存的指针。所以c=1执行的也是个引用建立,这三个变量其实是三个引用,指向同一个值。这个逻辑虽然简单,不过也还是常常容易弄混,这没关系,Python内置了id函数,可以返回一个对象的地址,用id函数可以让我们知道每个变量指向的是不是同一个值:
id(a) # 35556792L
id(b) # 35556792L
id(c) # 35556792L
注释中表示的仍是执行后的结果。如果这时候我们接下面两个语句:
b = 2 # b的引用到新的一个变量上
id(b) # 35556768L
可以看到b引用到了另一个变量上。
运算符
Python中的数值的基本运算和C差不多,字符串的运算更方便,下面是常见的例子:
a = 2
b = 2.3
c = 3
a + b # 2 + 2.3 = 4.3
c – a # 3 - 2 = 1
a / b # 整数除以浮点数,运算以浮点数为准,2 / 2.3 = 0.8695652173913044
a / c # Python2中,整数除法,向下取整 2 / 3 = 0
a ** c # a的c次方,结果为8
a += 1 # Python中没有i++的用法,自增用+=
c -= 3 # c变成0了
d = 'Hello'
d + ' world!' # 相当于字符串拼接,结果为'Hello world!'
d += ' "world"!'# 相当于把字符串接在当前字符串尾,d变为'Hello "world"!'
e = r'\n\t\\'
print(e) # '\\n\\t\\\\'
需要提一下的几点:1)字符串用双引号和单引号都可以,区别主要是单引号字符串中如果出现单引号字符则需要用转义符,双引号也是一样,所以在单引号字符串中使用双引号,或者双引号字符串中使用单引号就会比较方便。另外三个双引号或者三个单引号围起来的也是字符串,因为换行方便,更多用于文档。2)Python2中两个数值相除会根据数值类型判断是否整数除法,Python3种则都按照浮点数。想要在Python2种也执行Python3中的除法只要执行下面语句:
from __future__ import division # 使用Python3中的除法
1 / 2
3)字符串前加r表示字符串内容严格按照输入的样子,好处是不用转义符了,非常方便。
Python中的布尔值和逻辑的运算非常直接,下面是例子:
a = True
b = False
a and b # False
a or b # True
not a # False
基本上就是英语,操作符优先级之类的和其他语言类似。Python中也有位操作:
~8 # 按位翻转,1000 --> -(1000+1)
8 >> 3 # 右移3位,1000 --> 0001
1 << 3 # 左移3位,0001 --> 1000
5 & 2 # 按位与,101 & 010 = 000
5 | 2 # 按位或,101 | 010 = 111
4 ^ 1 # 按位异或,100 ^ 001 = 101
==, !=和is
判断是否相等或者不等的语法和C也一样,另外在Python中也常常见到is操作符,这两者的区别在于==和!=比较引用指向的内存中的内容,而is判断两个变量是否指向一个地址,看下面的代码例子:
a = 1
b = 1.0
c = 1
a == b # True,值相等
a is b # False,指向的不是一个对象,这个语句等效于 id(a) == id(b)
a is c # True,指向的都是整型值1
所以一定要分清要比较的对象应该用那种方式,对于一些特殊的情况,比如None,本着Pythonic的原则,最好用is None。
注意关键字
评论
查看更多