自学python系列4:序列,字符串,列表,元组

1.
有多少可以保存并被访问的序列元素
 
序列
1.1成员关系操作符(in,not in)
1.2连接操作符(+)
 
1.3重复操作符(*)
1.4切片操作符([],[:],[::])
访问某个数据元素的语法如下:
sequence[index]
sequence是序列的名字,index是访问元素的便宜了。
正序为0<=index<=len(sequence)-1
负索引为
-len(sequence)<=index<=-1
试图访问一个越界的索引会引发异常tuple index out of rang
例子:
>>> name=('a','b','c')
>>> print name[4]

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    print name[4]
IndexError: tuple index out of range
 
因为python是面向对象的,所以直接直接访问一个序列的元素
例子:>>> print ('a','b','c')[1]

b

 
以下我们来看序列的切片入门,举以下几个例子:
整个序列:
>>> name
('a', 'b', 'c')
>>> name[:]
('a', 'b', 'c')
序列切片操作:
>>> name[0:1]
('a',)
>>> name[:1]
('a',)
>>> name[1:2]
('b',)
>>> name[1:3]
('b', 'c')
>>> name[:3]
('a', 'b', 'c')
 
1.5用步长索引来进行扩展的切片操作
>>> name[::-1]
('c', 'b', 'a')          #可以视作"翻转"操作
>>> name[::2]
('a', 'c')               #隔一个取一个的操作
 
1.6切片索引的更多内容
注意点:切片索引的语法比简单的单一索引灵活得多。开始和结束索引值可以超过字符串的长度。
>>> ('a','b','c')[-100:100]
('a', 'b', 'c')
 
2.内建函数(BIF)
2.1类型转换
内建函数list(),str(),tuple()可以用作各种序列之间的转换
转换?为什么用“转换”二字,一旦python的对象被建立,我们就不能更改其身份或类型了。
例子:把一个列表对象传给list()函数,便会创建对象的浅拷贝,然后将其插入新的列表中。浅拷贝是只拷贝对象的索引,而不是建立一个对象。
2.2可操作内建函数
 
3.字符串
python里单引号和双引号的作用是相同的。
python实际上有三种字符串。
通常意义的字符串(str)和Unicode(unicode)实际上都是抽象类basestring的子类。
basestring是不能实例化的
>>> basestring('a')

Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    basestring('a')
TypeError: The basestring type cannot be instantiated
 
3.1字符串创建和赋值
>>> a='1'
>>> b="2"
>>> print a
1
>>> b
'2'
 
3.2如何访问字符串的值(字符和子串)
>>> a='abcde'
>>> a[0]
'a'
>>> a[1:4]
'bcd'
 
3.3改变字符串
字符串类型补课不,所以要改变一个字符串创建一个新串来实现。
 
3.4如何删除字符和字符串
>>> del a
>>> a

Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    a
NameError: name 'a' is not defined
 
4字符串和操作符
4.1标准类型操作符
=,<,>做比较操作时,按ASCII值大小做比较
4.2序列操作符切片
正向索引,反向索引,默认索引
若开始索引或结束索引没指定,则分别以字符串的第一个和最后一个索引值为默认值。
 
4.3成员操作符(in,not in)
>>> 'bc' in 'abcd'
True
>>> 'n' in'ab'
False
 
字符串大写,小写之类的转化
>>> import string
>>> string.uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
>>> string.digits
'0123456789'
 
4.4.连接符
>>> 'a'+'b'
'ab'
>>> 'a'+''+'b'
'ab'
>>> s='a'+''+'b'+''+'c'
>>> s
'abc'
>>> import string
>>> string.upper(s[:1]+s[0])
'AA'
不推荐用string模块来处理字符串常量。原因是python必须为每个参加连接操作的字符串分配新的内存,包括新的字符串。
推荐使用字符串格式化操作符%,或把字符串放到一个列表,一个join()来连接。
 
4.5.编译时字符串连接
python允许源码中把几个字符串连在一起来构建新的
>>> a="b""c"
>>> a
'bc'
4.6.普通字符串转化为unicode字符串
>>> 'hello'+u''+'world'+u'!'
u'helloworld!'
 
5.只适用于字符串的操作符
 
下面是一些使用格式字符串的例子
5.1十六进制输出
>>> "%x" %108
'6c'
5.2浮点型和科学计数法形式输出
>>> "%f" %123.456
'123.456000'
5.3整形和字符串输出
>>> "%d"%4
'4'
5.4调试
5.5unicode字符串操作符(u/U)
>>> u'abc'
u'abc'
>>> ur'hello'
u'hello'
 
6内建函数   定义若干个字符串,然后进行操作
6.1标准类型函数
cmp()
6.2序列类型函数
len()
max()和min()
enumerate()
zip()
6.3字符串类型函数
raw_input()
内建的该函数使用给定字符串提示用户输入并返回该输入。
>>> user_input=raw_input("Enter your name:")
Enter your name:a
>>> user_input
'a'
str()和unicode(),工厂函数,产生对应的类型的对象。接受一个任意类型的对象。
chr(),unichr(),ord()
chr()函数:返回一个range(256)的整数
unichr()函数:返回的range(256)的unicode字符
ord():是前两者的配对函数
>>> chr(65)
'A'
>>> unichr(12345)
u'\u3039'
>>> ord('a')
97
>>> chr(12345)

Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    chr(12345)
ValueError: chr() arg not in range(256)
>>> ord(u'\uffff')
65535
>>> ord(u'\ufffffff')

Traceback (most recent call last):
  File "<pyshell#60>", line 1, in <module>
    ord(u'\ufffffff')
TypeError: ord() expected a character, but string of length 4 found

转载于:https://www.cnblogs.com/wyx123/articles/4099103.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值