为实习好好学吧
------------------------------------
1.数据类型
Python计算时乘号*不可以省略 !!
整型和其他语言一样,八进制0开头,十六进制0x开头.
浮点型两种表示方式,12.3以及科学计数法1.23e1或者12.3e0均可.
整数与浮点数的运算规则同C, 两个数运算有一个浮点,结果便为浮点,小括号可叠加 (1+3)*4+((5*6)/8)
布尔值Ture,False,可用and,or,not计算
Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True
Python中的空值为None
重点介绍----字符串用 ' ' 或 " " 括起来均可
如果''中又有''或“”,则需要用转义字符/ 或者raw字符串
(1)转义字符:如 print 'Tom said /" I/'m a cat./" ' ~~~~~ Tom said " I'm a cat."
常用的转义字符还有 \n 表示换行 \t 表示一个制表符 \\ 表示 \ 字符本身,这些都是在字符串 ' ' 中用的
(2)raw字符串: r' ' 表示字符串中的字符不需要转义, 但不包括 ' 和 ",限单行(无语,好鸡肋啊,O__O"…)
相比之下直接用 r''' ''' 更实用,可以多行(用键盘enter在编辑器换行即可),而且包括 ' 和 " 都不需要转 义。如下图例子,注意行号:
---------------------->>>>>>
(3)字符串中有中文时,需在字符串前加u,如u' 中国' , u可以与r等叠加,如ur''' I'm a 中国人.'''
2. print语句
print ' ' ,' '
用于输出指定语句,举一个例子 : print '2+2', '4' 对应输出:2+2=4
换行问题:注意到相比别的语言,Python的句子结尾没有分号,而观察即可发现Python不需要‘ ; ’,因为Python执行是翻译而非编译,是靠编码时的换行来区分行数,逐行翻译。如下图,注意行号-
#开头的语句为注释
3.变量
Python是动态语言,变量没有固定类型,变量名必须是大小写英文、数字和_的组合,且不能用数字开头
等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
当我们写:a = 'ABC'时,Python解释器干了两件事情:
1. 在内存中创建了一个'ABC'的字符串;
2. 在内存中创建了一个名为a的变量,并把它指向'ABC'。
4.List(数组)
元素用 [ ] 括起来,逗号分隔,print除了元素值还显示' [ ] ' , 还是由于Python动态语言,list中的元素没有类型,各种数据均可以。
如 : L = ['Michael', 100, True]
List的访问: (1) 同数组的顺序引用,下标为0~n-1:L[0] , L[1]
(2) Python“特有"(个人猜测o(╯□╰)o)的倒叙,倒数第n个元素表示为L[-n],如最后一个元素L[-1]
List添加元素:(1)用 list 的 append() 方法,把新元素追加到 list 的末尾 ,示例
L.append('Paul')
(2)用list的 insert()方法,它接受两个参数,第一个参数是索引号(0~n-1),第二个参数是待添加的新元 素,插入位置后的元素各后移一个位置 . 示例 L.insert(0, 'Paul')
List删除元素:(1)list的pop()方法,从List中pop掉最后一个元素,相当于删除,并将其值返回 。L.pop()~~~打印list 中最后一个元素
(2)list的pop(n)方法,同理,只是pop掉索引的第n个元素,将其打印
List的元素替换:直接利用索引赋值即将原来的值替换
By the way-----关于元组tuple :
(1) 也是有序的列表;
(2) 用( )而非List的[ ]创建 ;
(3) 创建完毕就无法修改;
(4)同List一模一样的索引访问方式; 将其print还显示' () ' ;
(5) 约定,单个元素的元组在元素后面要加一个 ', ' 当元素个数为多个时,这个' , ' 不影响打印结果.
(6) tuple中含List元素时,这个List中的子元素是
可修改
的,如
t = ('a', 'b', ['A', 'B']) 中'A'和'B' 可修改
示例如下图-------
5.条件判断和循环
(补充:关于Python的代码块-----不同于C,Java等用{ }符号区分,Python是用4个空格的缩进来确定一个代码块,不能用Tab 。如果是在Python交互环境下编程,退出缩进需要多敲一行回车,即留出一行空白
)
If 格式--- if (not)条件:
代码块
If else 格式--- if 条件:
代码块
else :
代码块
If elif else 格式--- elif即为熟知的的elseif ,不多说,注意elif 也是接条件和 :
For循环 ,用于遍历List和Tuple ---
for 变量名 in list名(或tuple名或[ ],()实例):
代码块
While循环,不满足条件退出循环 --- while 条件 "
代码块
break退出for和while循环,continue直接进入下一次循环
循环均可嵌套
5.查找表
dict 为无序 key : value 对元素的集合,无序,用 { } 括起来,注意,最后一个元素末尾不需加‘ , ’ 例如
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
dict用key来索引value,如 d['Adam'] 即 95 ,key不存在返回keyerror,解决方法:
(1)索引前先判断该key是否在dict中
if 'Paul' in d:
print d['Paul']
(2)使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None
print d.get('Bart')
添加新key:value :直接使用赋值语句即可,d[new_key]=new_value, 若key已存在,则赋值语句将value值替换。
遍历dict: 使用for循环可以遍历dict的key值,而通过key值又能得到value。
for key in d:
print key
set 为去重复以及无序化的list,无法索引访问,元素和dict一样,为不
创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素
s = set(['A', 'B', 'C'])
如果 x 在 set s 中,则 x in s 的 返回值为Ture,否则为False
应用:由于set的访问非常快,所以其应用一般为匹配用,set中存一些常量,表示离散范围,用 变量 in s 的值判断这 个量是否属于这个离散范围,如非法字符判断可以将合法字符都存在set中。
set的遍历 : 用for循环遍历,遍历是无序的,但能保证每一个都只遍历一次,格式同dict的遍历。
set的更新:添加元素用set的add()方法 --->> s.add(新元素) ,如果新元素已存在,则不会加进set也不报错
删除元素用set的remove()方法--->> s.remove(set中某元素),若该元素不存在,则报错。所以使用 remove方法一般需要预判断,if x in s : s.remove(x)
5.函数
函数 cmp(x, y) 需要两个参数,如果 xy,返回 1
函数range(n1,n2,n3)可以创建一个从n1到n2-1每隔n3个数取一个的数组List 。默认n3=1省去不写,如
range(1, 101) -->> [1, 2, 3, ..., 100]
函数zip()可以把两个 list 变成一个 list。 zip([10, 20, 30], ['A', 'B', 'C']) -->> [(10, 'A'), (20, 'B'), (30, 'C')]
字符串的函数upper可以把字符串变为对应大写 'abc'.upper() --> 'ABC'
函数定义: def 函数名(参数名 ) :
代码块
函数返回值: Python的函数可以返回多个值(感天动地啊!!!)--->> return 返回值1,返回值2,.....
返回值的获取 ---->> x, y = move(100, 100, 60, math.pi / 6)
原理是其函数返回的多个值其实是一个Tuple
默认参数: 就是给某个参数一个默认值,调用时没有传入这个参数时,这个参数使用默认值,传入了当然用传入的 值,在定义函数的时候参数一个值即可,如右边n的默认值为2 : def power(x, n=2):
可变参数: 函数能接受任意个参数 ---->> def fn(*args):
原理还是Tuple,即args是一个tuple,例子如下
def average(*args):
sum = 0.0
if len(args) == 0:
return sum
for x in args:
sum = sum + x
return sum / len(args)
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)
6.切片
------------------------------------
形象的说,Python切片是一种基于索引的"截取"操作,其截取对象可以是list,tuple。显然,由于基于索引的,所以操作对象必须是有序的,否则,何来索引。(dict,set这种无序的无切片操作)
以list为例(tuple同理),介绍其使用方法, L是一个list:
L[a : b+1(:c)] 切取 L的第a的元素到第b个元素,得到一个新list,(:c)为可选,c表示每隔c个元素取一个,省去即c=1;
倒数切片:索引换成倒数方式,如 L[-3:-1]。
字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。
7,列表生成式
就是在[ ]里面做文章生成一个特定list的东西,省了用for循环append( )的麻烦
[x * (x + 1) for x in range(1, 100, 2)] --> [1x2, 3x4, 5x6, 7x8, ..., 99x100]
[x * x for x in range(1, 11) if x % 2 == 0] --> [4, 16, 36, 64, 100]
[m + n for m in 'ABC' for n in '123'] --> ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
记住这三个例子应该够用了。