Python学习笔记二
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记二相关的知识,希望对你有一定的参考价值。
---恢复内容开始---
一. python几种数据类型的比较。
从以下几个方面比较:
1. 是否可变。
不可变类型:变量的值可以发生变化,id也变了,相当于创建了一个新的对象,所以一修改值,id就变了,这种类型称之为不可变类型。
可变类型:变量的值可以发生变化,而且 id不会变,所以称之为可变类型。
例子:
#数字类型样例
x=10 print (id(x))
输出:1374668752
# 修改x的值为100,看看id变了吗?
x=100
print (id(x))
输出:1374671632
可以看到值修改了,id也变了,无法做到修改值,而保持id不变,所以数字类型属于不可变类型。
#字符串样例:
x=‘yangjianbo‘
print(x,id(x))
#修改x的值,两个id比较一下,是否相同。
x=‘wangyanhe‘
print(x,id(x))
输出的结果: 发现字符串的值被修改了,同时它的id也发生了变化,说明是产生了一个新的引用,所以字符串类型也是不可变类型。
#列表样例:
x=[‘yangjianbo‘,‘wangyanhe‘,‘gaozhongmin‘]
print (x,id(x))
#修改一下某个元素,看看列表x,id是否变化。
x[0]=‘gushuwei‘
print (x,id(x))
输出的结果:
[‘yangjianbo‘, ‘wangyanhe‘, ‘gaozhongmin‘] 37527688
[‘gushuwei‘, ‘wangyanhe‘, ‘gaozhongmin‘] 37527688
结论:修改列表中的某个元素,不会影响整个列表的id,所以列表属于可变类型。
#元组样例:
x=(‘yangjianbo‘,‘wangyanhe‘,‘gaozhongmin‘)
print (x,id(x))
x[0]=‘gushuwei‘
print (x,id(x))
输出结果:直接报错,因为元组只可读,不能写。
结论:元组是不可变类型。
#字典
x={‘name‘:‘yangjianbo‘,‘age‘:10,‘bumen‘:‘xitongbu‘}
print (x,id(x))
x[‘name‘]=‘wangyanhe‘
print (x,id(x))
输出结果:
{‘name‘: ‘yangjianbo‘, ‘age‘: 10, ‘bumen‘: ‘xitongbu‘} 31218928
{‘name‘: ‘wangyanhe‘, ‘age‘: 10, ‘bumen‘: ‘xitongbu‘} 31218928
结论:字典的值可以修改,而且id不会发生变化,所以字典属于可变类型。
2. 有序或无序。
有序和无序,数据类型能否按照索引的方式,读出数据。
#数字类型
x=10
print (x[0])
结论:报错了,数字类型,无法使用索引读出,它不是一个有序的数据类型。
#字符串
x=‘aabbcc4455‘
print (x[9])
结论:字符串可以通过索引读取字符串中的字符,字符串是有序的数据类型。
#列表
x=[‘yangjianbo‘,‘wangyanhe‘,‘gaozhongmin‘]
print (x[0])
结论:列表读取某个元素,必须指定元素的索引,所以列表是有序的数据类型。
#元组
x=(‘yangjianbo‘,‘wangyanhe‘,‘gaozhongmin‘)
print (x[0])
结论:元组读取某个元素,必须指定元素的索引,所以元组是有序的数据类型。
#字典
x={‘name‘:‘yangjianbo‘,‘age‘:10,‘bumen‘:‘xitongbu‘}
print (x[‘name‘])
结论:字典读取其中的某个值,必须指定键名称,不能按照索引进行读取。所以字典不是有序的数据类型。
3. 是否可读写。
除了元组不可写,其他类型都支持读写。
4. 存一个值还是多个值。
数字类型只有一个值,
字符串也只有一个值
列表多个值
元组多个值
字典多个值
二. 数字类型的一些功能
两个变量交换数值。
x=10
y=20
x,y=y,x
print (x)
print (y)
将多个变量引用到一个值上。
x=y=z=100
print (x,y,z,id(x),id(y),id(z))
三. 字符串的一些功能
查看字符串长度
x=‘aaa11111‘ print (len(x))
字符串切片
x=‘abc12345ABC‘ print (x[1:9:3])
第一个数字1表示从索引1开始,
第二个数字9表示到第9-1索引结束
第三个数字3表示步长,从索引1开始数,三步一个。
输出的结果:b25
成员运算符
x=‘abc12345ABC‘ print (‘A‘ in x) print (‘B‘ not in x)
输出的结果:
True
False
移除空格
使用字符串的函数strip() lstrip() rstrip()
strip()默认移除的是空白符,\t \r \n.
name = " yangjianbo" print (name) name=name.strip() print (name)
输出的yangjianbo,没有前面的空白。
name = "yangjianbo*****"
name=name.strip(‘*‘)
print (name)
输出的结果:忽略*号字符。
name = "yangjianbo*****"
name=name.strip(‘an‘)
print (name)
输出的结果:我要忽略an,这个an字符在整个字符串的中间部分,而不是两头,结果输出的结果依然是原来的值
结论:中间的字符不能被忽略,只能忽略头和尾的字符。
分割
以字符开头
以字符结尾
以上是关于Python学习笔记二的主要内容,如果未能解决你的问题,请参考以下文章