python怎么复习_python复习

20150124今天复习python基础教程书,记录下并总结下基础知识

第一章:python基础知识,安装python开发环境

幂次方:

>>> print 2**32

4294967296

>>> x=pow(2,64)

>>> print x

18446744073709551616

四舍五入

>>> round(5.2)

5.0

>>>

>>> round(5.8)

6.0

绝对值

>>> abs(-10)

10

等待用户输入

>>> input("please input  you

name:")

please input  you name:2

2

求平方

>>> from math import sqrt

>>> sqrt(81)

9.0

负数平方,正常导入cmath复数函数,非from .. import 语句,其中j为虚数,或者(J)表示

正如长整数(L)一样

>>> import cmath

>>> sqrt(-81)

Traceback (most recent call last):

File "", line 1, in

sqrt(-81)

ValueError: math domain error

>>> cmath.sqrt(-81)

9j

注释#

'''三个引号,代替普通引号,长字符跨多行

>>> print """ hello word

Test ok

"""

hello word

Test ok

第二章:列表[]和元组()

通常理解为数据结构中的数组,元素分配序号(索引),从0开始索引

2.1如何理解列表,及序号访问数组;字符串也是由字母组成的列表同理

月份序数

>>> endings= ['st','nd','rd'] + 17* ['th'] +

['st','nd','rd'] + 7*['th'] +['st']

>>> endings[21]

'nd'

>>> ordinal = '22' + endings[21]

>>> print ordinal

22nd

>>> ordinal = '17' + endings[16]

>>> print ordinal

17th

年份列表

>>> months =[

'January',

'February',

'March',

'April',

'May',

'June',

'July',

'August',

'September',

'October',

'November',

'December'

]

>>> months[4]

'May'

2.2 切片

默认步长为1,步长为负数则从右到左提取元素

格式如:列表[起始索引:结束索引:步长]

>>> tag='hello word'

>>> tag[4:]

'o word'

>>> tag[2:-1]

'llo wor'

>>> tag[-3]

'o'

>>> tag[-3:]

'ord'

>>> tag[2::2]

'lowr'

>>>

2.3序列相加,只有相同类型的列表才能相加

乘法则是重复列表多少次

>>> [1,2,3]+[4,5,6]

[1, 2, 3, 4, 5, 6]

>>> 'Hello,' + 'word!'

'Hello,word!'

>>> [ 1,2,3] + 'Hello'

Traceback (most recent call last):

File "", line 1, in

[ 1,2,3] + 'Hello'

TypeError: can only concatenate list (not "str") to list

>>>

>>> 'Hello'*4

'HelloHelloHelloHello'

>>> [1,2,3]*4

[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

>>>

2.4 成员资格,检查成员是否在列表之中

>>> a=[1,2,3]

>>> 2 in a

True

>>> a='Hello word'

>>> h='o'

>>> h in a

True

>>>

>>> p in python

Traceback (most recent call last):

File "", line 1, in

p in python

NameError: name 'p' is not defined

>>> 'p' in 'python'

2.5 内置函数

len求长度,min最小值,max最大值,list列出,append附加到最后一个,count是统计元素多少个,

extend是扩展列表并修改原列表

index 第一个匹配的索引位置

insert指定插入元素

pop出栈,后进先出原则(LIFO Last in First out), append则是入栈

del array[3]则是删除第4个元素

remove删除第一个匹配元素

reverse 返回存放

>>> array=[1000,8,79]

>>> len(array)

3

>>> min(array)

8

>>> max(array)

1000

>>> list(array)

[1000, 8, 79]

>>> list(array)

[1000, 8, 79]

>>> array.append(4)

>>> array

[1000, 8, 79, 4]

>>> del array[4]

Traceback (most recent call last):

File "", line 1, in

del array[4]

IndexError: list assignment index out of range

>>> del array[3]

>>> array

[1000, 8, 79]

>>> array.append(1000)

>>> array.count(1000)

2

>>> b=[1,2,4]

>>> array.extend(b)

>>> array

[1000, 8, 79, 1000, 1, 2, 4]

>>> array.index(79)

2

>>> array.index(1000)

0

>>> array.insert(3,'3')

>>> array

[1000, 8, 79, '3', 1000, 1, 2, 4]

>>> array.pop()

4

>>> array

[1000, 8, 79, '3', 1000, 1, 2]

>>>

>>> array.pop()

2

>>> array

[1000, 8, 79, '3', 1000, 1]

>>> array.remove(1000)

>>> array

[8, 79, '3', 1000, 1]

>>>

>>> array.reverse()

>>> array

[1, 1000, '3', 79, 8]

>>>

>>> array.sort()

>>> array

[1, 8, 79, 1000, '3']

>>>

>>> array.sort()

>>> array

[1, 8, 79, 1000, '3']

>>>

2.6排序

其中列表复制副本,不能y=x,因为还是指定原列表

>>> y=x[:]则是复制所有元素

排序还有为保存为列表,需要复制副本,此时要注意,或者直接使用sorted函数

sort()函数默认为cmp比较排序,高级排序则指定方式

>>> x=[3,4,1,5]

>>> y=x

>>> y

[3, 4, 1, 5]

>>> y.sort()

>>> y

[1, 3, 4, 5]

>>> x

[1, 3, 4, 5]

>>> x=[3,4,1,5]

>>> y=x[:]

>>> y.sort()

>>> y

[1, 3, 4, 5]

>>> x

[3, 4, 1, 5]

>>> x=[4,3,2,5]

>>> y=sorted(x)

>>> x

[4, 3, 2, 5]

>>> y

[2, 3, 4, 5]

sort()函数默认为cmp比较排序,高级排序则指定方式,类如长度排序

>>> x=['Helloword','abcdefg','add','love']

>>> x.sort(key=len)

>>> x

['add', 'love', 'abcdefg', 'Helloword']

>>> x.reverse()

>>> x

['Helloword', 'abcdefg', 'add', 'love']

>>>

2.7 冒泡排序

>>> array=[2,4,1,3,7,10,9]

>>> for i in range(len(array)-1,0,-1):

print i

print array

for j in range(0,i):

print j

if array[j] >array[j+1]:

array[j],array[j+1]=array[j+1],array[j]

6

[2, 4, 1, 3, 7, 10, 9]

0

1

2

3

4

5

5

[2, 1, 3, 4, 7, 9, 10]

0

1

2

3

4

4

[1, 2, 3, 4, 7, 9, 10]

0

1

2

3

3

[1, 2, 3, 4, 7, 9, 10]

0

1

2

2

[1, 2, 3, 4, 7, 9, 10]

0

1

1

[1, 2, 3, 4, 7, 9, 10]

0

>>>

>>>

第一次外循环 i=6, 内循环 j=0

-->j=6,第一次内循环结束时,最大值10在最后array[6]

[2, 1, 3, 4, 7, 9, 10]

第二次外循环 i=5, 内循环 j=0-->j=5

第二次内循环结束时,最二大值9在最后array[5]

[1, 2, 3, 4, 7, 9, 10]

...

>>> for i in range(len(array)-1,0,-1):

print i

print array

for j in range(0,i):

print j

if array[j] >array[j+1]:

array[j],array[j+1]=array[j+1],array[j]

6

[1, 2, 5, 3, 6, 8, 4]

0

1

2

3

4

5

5

[1, 2, 3, 5, 6, 4, 8]

0

1

2

3

4

4

[1, 2, 3, 5, 4, 6, 8]

0

1

2

3

3

[1, 2, 3, 4, 5, 6, 8]

0

1

2

2

[1, 2, 3, 4, 5, 6, 8]

0

1

1

[1, 2, 3, 4, 5, 6, 8]

0

>>>

2.8元组

列表中的项目应该包括在方括号[]中,

你可以添加、删除或是搜索列表中的项目。

由于你可以增加或删除项目,所以列表是可变的数据类型,

即这种类型是可以被改变的。

元组和列表十分类似,但是元组是不可变的,共操作跟元组类似,只是不能被修改。

也就是说你不能修改元组。

元组通过圆括号()中用逗号分割的项目定义。

元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,

即被使用的元组的值不会改变。

>>> 1,2,3

(1, 2, 3)

>>> x=(1,2,3)

>>> x[1]

2

>>> x[0:1]

(1,)

>>> x[-1:]

(3,)

>>>

将列表转换成元组

>>> x=[1,2,3]

>>> tuple(x)

(1, 2, 3)

2.9 去除列表中的重复元素,先排序

>>> List=['b','b','d','b','c','a','a']

>>> if List:

List.sort()

last=List[-1]

for i in range(len(List)-2,-1,-1):

print i

List

print last

if last==List[i]:

del List[i]

else:

last=List[i]

5

['a', 'a', 'b', 'b', 'b', 'c', 'd']

d

4

['a', 'a', 'b', 'b', 'b', 'c', 'd']

c

3

['a', 'a', 'b', 'b', 'b', 'c', 'd']

b

2

['a', 'a', 'b', 'b', 'c', 'd']

b

1

['a', 'a', 'b', 'c', 'd']

b

0

['a', 'a', 'b', 'c', 'd']

a

>>> List

['a', 'b', 'c', 'd']

过程如上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值