Python的语法比较简单,采用缩进方式,当语句以冒号“:”结尾时,缩进的语句视为代码块。
按照约定俗成的管理,应该始终坚持使用4个空格的缩进。Python程序是大小写敏感的
一、数据类型和变量
1、整数
2、浮点数
3、字符串
字符串是以''或""括起来的任意文本,字符串内部既包含'又包含"可以用转义字符\来标识,转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\Python还允许用r''表示''内部的字符串默认不转义,Python允许用'''...'''的格式表示多行内容
4、布尔值
在Python中,可以直接用True、False表示布尔值(请注意大小写)
5、空值
用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
6、变量
Python解释器干了两件事情:在内存中创建了一个'ABC'的字符串;在内存中创建了一个名为a的变量,并把它指向'ABC'。
7、常量
二、字符串和编码
1、编码
ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
2、字符串
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,把UTF-8编码表示的字符串'xxx'转换为Unicode字符串u'xxx'用decode('utf-8')方法:
3、格式化
常见的占位符有:
%d |
整数 |
%f |
浮点数 |
%s |
字符串 |
%x |
十六进制整数 |
用%%来表示一个%:
三、list与tuple
1、list
定义一个list:classmates = ['Michael','Bob', 'Tracy']
len(classmates)
classmates[0]
classmates[-1]
classmates.append('Adam')
classmates.insert(1,'Jack') #在位置“1”插入,其他后退
classmates.pop() #在末尾删除并返回改数据
classmates.pop(1) #删除相应位置并返回
classmates[1] ='Sarah' #替换
s = ['python','java', ['asp','php'], 'scheme'] #list的元素是另一个list,者s[2][1],因此s可以看成是一个二维数组
2、tuple
classmates = ('Michael','Bob', 'Tracy')
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
t = (1,) #只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
我们先看看定义的时候tuple包含的3个元素:
当我们把list的元素'A'和'B'修改为'X'和'Y'后,tuple变为:
四、条件判断及循环
1、条件判断
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
2、for...in循环
Python提供一个range()函数,可以生成一个整数序列,比如range(5)生成的序列是从0开始小于5的整数:
3、while循环
五、dict和set
1、dict
d = {'Michael':95,'Bob':75,'Tracy':85}
d['Adam'] =67 #放入
'Thomas'in d #避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
d.get('Thomas', -1) #二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
d.pop('Bob') #删除一个key,用pop(key)方法,对应的value也会从dict中删除:
牢记的第一条就是dict的key必须是不可变对象
2、set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
s = set([1,2,3]) #提供一个list作为输入集合
s = set([1,1,2,2,3,3]) #重复元素在set中自动被过滤
s.add(4)
s.remove(4
>>> s1 = set([1,2,3])
>>> s2 = set([2,3,4])
>>> s1 & s2
set([2,3])
>>> s1 | s2
set([1,2,3,4])
set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”