操作字符串的方法:
a.索引取值
a='abcde'
a[0]、a[1]取a中元素,但一次只可以取一个。
用+号连接,如,a[1]+a[2]。得‘ab’
b.切片 可以从字符串中进行截取
分正负数,正数表示从左往右取,从0开始;负数代表从右往左取,最后一位为-1.
正数 a[1:4] 1表示起始位从1开始。4表示结束位的后一位。即取的片段不包括结束点。即,取得值为‘bcd’
a[4:]表示直到末位。
a[::2]2表示步长,两步一取。
负数 a[-1]取最后一个值
a[-4:-1]取的是‘bcd’
a[-2:-4:-1]表示倒着取,即‘dc’
序列【列表/元组/字符串】【特点:索引/切片】
a.基本操作
- len() 求长度
- + 连接
- * 重复序列元素 如‘#’*40 得一行“########”
- in 观察某元素是否在某字符串内 如‘C’in str1 得True or False
- max 求最大值
- min 求最小值
- cmp(tuple1,tuple2)比较两个元素 大于返回1小于返回-1等于返回0
- abs() 求绝对值
(元组) 【与列表类似,但元组、字符串不可修改】【主要解决:储存一组值】
- 使用(),用,号分割
- 被使用的元组值 不会改变
str1='12345'->id(str1)->14890
str1='abcde'->id(str1)->18988 留意id变化,变量名的作用更像一个标签
str2='12345'->id(str2)->14890
- Python存储空间的方法与C不同,C是什么类型,多大空间需要预先声明好,然后去开辟对应的空间。而Python是先将值在内存中存储好之后,在通过一个标签(变量名)去引用。即值的类型在内存中存好了,无需事先定义这空间存什么,即不同字符串占据不同空间,即不可修改。
- 相应地,如果值相同,那么不同变量名指向的空间是一样的,也就是说,只存一份。
- 如果要存两份怎么办?---------深拷贝,浅拷贝。
- 元组最通常的用法是 打印语句
name='Mike'
age=22
print'%s is %d years old'%(name,age)
因为字符串有限制,例如:userinfo='mike 30 m'如果要引用mike,则需要用到切片,userinfo[:4]
而用元组
t=('mike',30,'male')
t[0]
元组的作用:
A.存储一系列的值
B.保护用户定义的函数(由于其值不可变,安全性高)
元组的操作:
A.创建元组
空元组,由一对空括号组成t=()
单元组,即元组内只有一个值,值得注意的是,single=(2,)后面的逗号不可省略;为了与int型数据区分。
B.索引切片【定义变量的一种方式】
t=('name',30,'male')
name,age,gender=t
print name
[列表]【一组有序项目的数据结构】【可变】【即可以添加/删除/搜索 项目】
A.列表操作
1.取值:切片索引 list[] t=['David',30,'male']
2.添加:list.append() t.append('12345678')
3.删除:del(list[])系统函数
list.remove(list[])list函数的方法
4.修改:list[]=x t[0]='xiaoming'
列表t会相应变成t=['xiaoming',30,'male']
注意,修改元素后的列表的id的位置不变。因此说列表是可变的(位置不变,内容可变)。
5.查找:var in list
和元组操作很多相似之处,但当列表只有一个元素时,无需另加一个,如t['mike']
列表就像是盒子,空间固定,里面放的内容可变。
元组不可以通过类似列表的修改操作进行修改值,哪怕重新敲入与原值有一个不同的值,地址空间也会更改。
另外,当列表元素只有一个值时,无需像元组一样,另添逗号。