一.什么是数据
比如 X = 10,10是我们要存储的数据
数据可以是符号、文字、数字、语音、图像、视频等,
数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。
在计算机系统中,数据以二进制信息单元0,1的形式表示。
二.为何数据要分不同的类型
数据是用来表示状态的,不同的状态应该由不同的数据来表示。
三.数据类型
数字(int,float,complex)
作用:年纪,年级,等级,身份证号,QQ号等数字相关
长整形
在python2中(python3中没有长整形的概念):
>>> num=2L
>>> type(num)
<type 'long'>
复数
>>> x=1-2j
print(type(x))#<class 'complex'>
字符串(Python 没有单独的字符类型,一个字符就是长度为1的字符串)
索引值以 0 为开始值,-1 为从末尾的开始位置
字符串的截取:
#!/usr/bin/python3 str = 'aleXnn' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符 print (str * 2) # 输出字符串两次 print (str + "TEST") # 连接字符串
注意:
- 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
- 2、字符串可以用+运算符连接在一起,用*运算符重复。
- 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
- 4、Python中的字符串不能改变。
列表(List)
列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号([])之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
#!/usr/bin/python3 list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ] tinylist = [123, 'aleXnn'] print (list) # 输出完整列表 print (list[0]) # 输出列表第一个元素 print (list[1:3]) # 从第二个开始输出到第三个元素 print (list[2:]) # 输出从第三个元素开始的所有元素 print (tinylist * 2) # 输出两次列表 print (list + tinylist) # 连接列表
字符串的常见内置方法:
#strip name = '*egon**' print(name.strip('*')) print(name.lstrip('*')) print(name.rstrip('*')) #startswith,endswtith name ='alex_SB' print(name.endswith('SB')) print(name.startswith('alex')) #replace name='alex say:i have one tesla,my name is alex' print(name.replace('alex','SB',1)) #format的三种用法 res='{} {} {}'.format('egon',18,'male') res1='{1} {0} {1}'.format('egon',18,'male') res2='{name} {age} {sex}'.format(sex='male',name='egon',age=18) print('------------') #find,refind,index,reindex,count name='egon say hello' print(name.find('o',1,3))#顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引 #print(name.index('e',2,4))#同上,但是找不到会报错 print(name.count('e',1,3))#顾头不顾尾,如果找不到指定范围则查找所有 #split name='root:x:0: 0::/root:/bin/bash' print(name.split())#默认分隔符为空格 name='C:/a/b/c/d.txt'#只想拿到顶级目录 print(name.split('/',3)) name='a|b|c' print(name.rsplit('|',1))#从右边开始切分 #join tag=' ' print() print(tag.join(['egon','say','hello','world'])) #可迭代对象必须都是字符串 #center,ljust,rjust,zfill name = 'egon' print(name.center(30,'-')) print(name.ljust(30,'*')) print(name.rjust(30,'*')) print(name.zfill(50))#用0填充 #expandtabs name='egon hello' print(name) print(name.expandtabs(1)) #lower,upper name='egon' print(name.lower()) #captalize,swapcase,title print(name.capitalize())#首字母大写 print('-------------------') print(name.swapcase())#大小写翻转 msg='egon say hi' print(msg.title())#每个单词的首字母大写 #is数字系列 #在python3中 num1=b'4'#bytes num2=u'4'#unicode,python3中无需加U就是Unicode num3='四'#中文数字 num4='IV'#罗马数字 #isdigt:bytes,unicode print(num1.isdigit())#True print(num2.isdigit())#True print(num3.isdigit())#False print(num4.isdigit())#False #isdecimal:unicode #bytes类型无isdecimal方法 print(num2.isdecimal())#True print(num3.isdecimal())#False print(num4.isdecimal())#False #isnumberic:unicode,中文数字,罗马数字 #bytes类型无isnumberic方法 print(num2.isnumeric())#True print(num4.isnumeric())#True #三者不能判断浮点数 num5='4.3' print(num5.isdigit()) print(num5.isdecimal()) print(num5.isnumeric()) #is 其他 print('===>') name = 'egon123' print(name.isalnum())#字符串由字母和数字组成 print(name.isalpha())#字符串只有字母组成 print(name.isidentifier()) print(name.islower()) print(name.isupper()) print(name.isspace()) print(name.istitle())
元组
定义:与列表类似,[ ]改为()
特性:可存放多个值;元素不可变;按照从左到右的顺序定义元组的元素,下标从0开始顺序访问,有序
创建元组:
L = (1,2,3,4,5,6)
元组常用操作:
索引,切片,循环,长度,包含
字典
列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
#!/usr/bin/python3 dict = {} dict['one'] = "1 - 菜鸟教程" dict[2] = "2 - 菜鸟工具" tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'} print (dict['one']) # 输出键为 'one' 的值 print (dict[2]) # 输出键为 2 的值 print (tinydict) # 输出完整的字典 print (tinydict.keys()) # 输出所有键 print (tinydict.values()) # 输出所有值
特性:可存放多个值;可修改指定key 对应的值,可变;无序
创建字典:
1 dic = {'name':'宋江','age':30,'hobbies':'gilrs','salary':50000}
集合
定义:由不同的元素组成,集合中是一组排列的可hash的值,可以作为字典的key
特性:集合的目的是将不同的值存放到一起,不同的集合间用来作关系运算,不用纠结集合中单个值
创建集合:
set_ac = {'alex','egon','age','salary'}