python基础语法(1)

来源:互联网 发布:软件质量管理 编辑:程序博客网 时间:2024/06/05 20:37

1. 列表 (sequence)

python中列表其实在形式上很像是c语言中的数组。用符号[  ]  来表示,但是和C语言中的不同之处在于。列表中可以带很多的方法。

必须要明白一件事情 就是 python中 实际上是没有;这种东西的 ,基本上都是用格式来区分

这样做的好处是 ,代码优美 ,易读



/ 除号
% 取模
// 整除
** 乘方

十六进制 0x
八进制 0


关于序列
序列和元祖的区别,是元祖不可变,序列可变

序列是用[]

很奇怪 ,索引序列也是[],难道不会搞混掉么?

列表中的东西,用,隔开.

在没有引号的情况下,,可以直接饮用变量做拼接,就是序列中包含其他序列

#list

edward = ['Edwrd Gumby',42]

print edward[0]

#itrable list

john = ['John Smith',50]

database = [edward,john]

print database

索引

#index

greeting = 'Hello'

#seek it since the end

print greeting[-1]

#begin one is index 0

print greeting[0]

切片 [a:b], 从a到b,不包括b。
我想可以这样子理解,如果b是总长 ,那么 打印b出来就越界了,就不合理了
所以有个这样子的规定。

比如 green[0:1],就只会打印一个 H出来。

numbers = [1,2,3,4,5,6,7,8,9,10];

print numbers [7:10]
打印 8,9,10
print numbers[-3:-1]
打印 8,9
print numbers[-3:]
打印8,9,10

其实 到结尾 ,直接不填就是到结尾的意思

print numbers[0:10:1]

print numbers[0:10:2]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 5, 7, 9]

如果在切片后面再填一位的话,就是切片步长。

切片可以是复数

print numbers[10:0:-1]

print numbers[10::-1]

[10, 9, 8, 7, 6, 5, 4, 3, 2]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

特别强调 0 不是最后,在逆序的时候 , 空才是最后

那样就是从右至左来提取数列

序列相加

用+号就可以将两个序列相加了

numbers = [1,2,3]+[4,5,6]





print numbers
结果
[1, 2, 3, 4, 5, 6]

list 是支持* 表示 复制几分序列的意思

numbers = numbers*2

print numbers

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


检查一个值是否在序列中,可以用in

想知道 ,这个东西是个什么类型,那么就用type() 就可以了

permissions = 'rw'

ret = 'w' in permissions

print type(ret)

输出
<type 'bool'>

/-----------------------

lst = [1,2,3]

lst.append(4)

print lst

在链表尾追加数据


/----------------------------

print ['to','be','or','to','nor','be'].count('to')

输出2

查找某个元素出现的次数

/-------------------------------
扩展原有列表
a = [1,2,3]
b = [4,5,6]

a.extend(b)

print a

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


/-----------------------------------

#index methed

kiights = ['We','are','the','knights','who','say','ni']

print kiights.index('who')

/------------------------------

#insert list

numbers = [1,2,3,4,5]

numbers.insert(3,'four')

print numbers

输出
4
[1, 2, 3, 'four', 4, 5]

/------------------------------------------
删除元素,pop操作,默认删除最后一个

numbers.pop()

print numbers

numbers.pop(0)

print numbers

/--------------------------------------------
x = ['to','be','or','nor','to','be']

x.remove('be')

print x

去除第一个be的匹配项

['to', 'or', 'nor', 'to', 'be']

/-------------------------------------------

反向 reverse

x.reverse()

print x

['be', 'to', 'nor', 'or', 'to']

/-----------------------------------------
排序问题 sort
x = [1,5,3,2,6,9,4]

#if need save the origin list , should do like this y = x[:]
#if do like this y = x. it dose not effct ,because they point the same place

y = x[:]

y.sort()

print x
print y



返回bool的时候 可以看如下示例

#check user name and PIN code

database = [
['albert','1234'],
['dilbert','4242'],
['smith','7542'],
['jons','9843']
]

username = raw_input('User name:')

pin = raw_input('PIN code:')

if [username,pin] in database:
print 'Access granted'

验证码


改变元素的值
#exchange the value in list

x = [1,1,1]

x[1] = 2

print x

/-----------------------------------


#delete elemate of list

names = ['Alice','Beth','Celil','Dee-Dee','Earl']

del names[2]

print names

删除元素

/-------------------------------------------

分片赋值

#assign value by pieaces

name = list('Perl')

name[2:] = list('ar')

print name

这里遇到了一个问题,字符串不能直接做分片操作,所以先要list一下

/------------------------------------------------

插入元素

numbers = [1,5]

numbers[1:1] = [2,3,4]

print numbers

[1, 2, 3, 4, 5]

/-----------------------------------------------

以此类推,删除分片也是一样的

numbers[1:4] = []

print numbers

[1, 5]

/----------------------------------------------














0 0
原创粉丝点击