Python之路----数据类型
Python的集成开发环境(IDE):pycharm
数据类型
数字
整数int(integer)
浮点数float
布尔型,只有两个值
真:True
假:False
字符串
列表
元组
字典
一、字符串
1.字符串的输出
(1)单引号、双引号、三引号
它们的作用主要是为了区分。
1 msg1 = "let's go" #双引号包含单引号 2 msg2 = 'it is a "dog"' #单引号包含双引号 3 msg3 = '''it's a "dog"''' #三引号包含单引号和双引号 4 print(msg1) 5 print(msg2) 6 print(msg3)
(2)利用三引号进行多行字符串的输出:
1 msg = '''hello1 2 hello2 3 hello3''' 4 print(msg) 5 输出结果: 6 hello1 7 hello2 8 hello3
(3)字符串的格式化输出 %s
按照下面的格式输出信息
格式:
1 ---------------info of yangxl------------- 2 name:yangxl 3 age:26 4 job:IT 5 salary:500 6 --------------------end-------------------- 7 8 实现: 9 name = input('请输入您的名字:') 10 age = int(input('请输入您的年龄:')) 11 job = input('请输入您的工作:') 12 salary = float(input('请输入您的收入:')) 13 msg = ''' 14 ---------------info of %s------------- 15 name:%s 16 age:%s 17 job:%s 18 salary:%s 19 --------------------end-------------------- 20 ''' %(name,name,age,job,salary) 21 print(msg) 22 23 执行: 24 请输入您的名字:羊小羚 25 请输入您的年龄:26 26 请输入您的工作:IT 27 请输入您的收入:500.50 28 29 输出: 30 ---------------info of 羊小羚------------- 31 name:羊小羚 32 age:26 33 job:IT 34 salary:500.5 35 --------------------end--------------------
另外还有%d,digit的格式化输出,
%f,float的格式化输出。
(4)字符串操作
字符串的重复输出:*号
str = 'hello world!\n' print(str*5)
通过索引和切片对字符串进行操作
1 str = 'hello world' 2 print(str[5]) 3 print(str[3:])
成员函数in,判断指定字符是否在字符串中
1 str = 'helloworld' 2 print('low' in str) 3 print('c' in str)
字符串拼接:join,不要用“+”
1 a = '河北' 2 b ='邢台' 3 c = a + b #用加号做字符串拼接,效率比较低,每一次拼接都会在内存中开辟一块空间。 4 d = ' '.join([a,b]) #join中可以使用任何字符当做分隔符。 5 e = ' '.join([a,b]) 6 print(c,d,e)
字符串的操作方法A-Z:
str = 'hello world' print(str.count('l')) #统计字符串中指定字符串出现的次数 print(str.capitalize()) #字符串的首字母大写 print(str.center(30,'*')) #接收两个参数,使用给定字符(强调:只能是一个字符,一个)填充到给定个数并居中 print(str.ljust(30,'*')) #左侧 print(str.rjust(30,'*')) #右侧 print(str.endswith('ld')) #判断字符串是否以指定字符串结尾,True or False print(str.endswith('orl',3,-1)) #endswith中也可以给定被判断字符串的开头和结束位置 str2 = 'hell\to wo\trld' print(str2.expandtabs(tabsize=10)) #设置字符串中的一个制表位\t扩展为多少个空格 print(str.find('l')) #返回给定字符串在整个字符串中第一次出现的位置 print(str.find('de')) #如果给定字符串不存在则返回-1 print(str.index('or')) #返回给定字符的索引 print(str.index('oro')) #如果给定字符不存在,就会报错,这是index(error)和find(-1)方法的区别 #这三个不常用 str2 = '0.35' print(str2.isalnum()) #字母、整数、汉字都为True,有特殊字符为False str2 = 'sdlhfg天啊' print(str2.isalpha()) #字母、汉字都为True,整数、特殊字符为False str2 = '0345' print(str2.isdecimal()) #只有十进制整数时为Ture #这个常用 str2 = '57878' print(str2.isdigit()) #是否是数值(整数) str2 = '_-df34' print(str2.isidentifier()) #判断是否是标识符,字母、数字、下划线而且不以数字开头,不含空格等特殊字符,不含中文 str2 = 'sf-j_l$爱s23' print(str2.islower()) #下划线、特殊字符、汉字都可以,就是不能有大写字符 str2 = 'R搬e $#砖' print(str2.isupper()) #只有不是小写字母就为Ture str2 = 'YANG XIAOLING' print(str2.istitle()) #只有首字母大写才为True isprintable和isspace相反 str2 = '#sf-j \t_l$爱s23#' print(str2.isprintable()) #是否可打印的,只要不含有空格,\n \t这样看不到的格式 str2 = '\t \t backspace' print(str2.isspace()) #是否是空,空格,\n \t都为True str2 = ' \t s dsf ' print(str2.strip()) #去掉两边空格和制表位 print(str2.lstrip()) #左边 print(str2.rstrip()) #右边 print(str.replace('l','lm',2)) #替换原有字符串 print(str.replace('le','lm')) #没有的话就打印原字符串 print(str.rfind('l')) #从右边开始计数(前一个,前两个...),但索引仍是从左边开始算起 print(str.rindex('l')) #不多说了 str2 = 'the title high light' print(str.rsplit('l')) #从右边开始切片为***列表***,count;相应地列表合并为字符串要用join print(str2.split('i',2)) #默认是空格,count表示分几次 print(str2.splitlines()) print(str.swapcase()) #大小写变换 print(str.zfill(40)) #向左填充指定位
二、列表
1.通过列表和索引操作列表(略)
2.列表操作:A-Z
list = [1,2,3,5,7,6,9,4,3] list.append(4) #附加元素 print(list) print(list.count(3)) list.clear() #清空,输出一个空列表 print(list) li = list.copy() print(li,list) print(id(li),id(list)) #和直接赋值的区别在于开辟一块内存再储存一份,因此它们的内存地址不同 list2 = ['yangxl','xiaoming','dingcq'] list.extend(list2) print(list,list2) #被扩展的list改变,用以扩展的list2不变 print(list.index(3)) #元素首次出现的索引 list.insert(3,'python') #在指定位置插入元素 print(list) list.pop(3) #如果不指定索引,默认删除最后一个元素 print(list) list.remove(3) #删除第一个值为3的元素,而不是索引为3的元素 print(list) list.reverse() print(list) list.sort(reverse=True) #貌似好像只能是数值型才能排序,顺序/逆序 print(list)
三、元组
元组是不可变类型,只能进行查操作,不能进行增删改。
tu = (12,34,'羊小羚','rmb','%&','hello world') tu.count() tu.index()
四、字典
1.字典是Python中唯一的映射类型,采用键值对(key-value)的形式存储。Python对key进行哈希运算,根据运算结果决定value的存储地址,所以字典是无序存储的,而且key必须可哈希。可哈希表示key必须是不可变类型,比如,数字、字符串、元组。字典的两大特点:无序,键唯一。
2.创建字典的方法:
dict1 = {'name':'羊小羚','age':18,'sex':'male'} #这是最常用的方法 print(dict1)
3.当字典中存在相同key时,前面的将会被后面的覆盖
dict3 = {'name':'alex','age':36,'age':'liu','sex':'male'} print(dict3['age']) print(dict3) #字典没有顺序
4.字典操作方法:A-Z
dict1 = {'name':'yangxl','sex':'male','age':36} dict1['age'] = 18 dict2 = dict1.copy() #1.和直接赋值的区别在于开辟一块内存再储存一份,因此它们的内存不同 print(dict1,dict2) print(id(dict1),id(dict2)) dict1.clear() #2.清空,变成一个空字典 print(dict1) dict2 = dict.fromkeys(['mon','tus','wen','thi','fri','sat'],'sun') #3.映射,多对一创建;字典特有的方法。 print(dict2) dict2 = dict1.get('sex') #4.查询key对应的value,或者是否存在这个key-value;字典特有的方法。 print(dict2) print(dict1.items()) #5.dict_items([('sex', 'male'), ('name', 'alex')]) print(type(dict1.items())) #<class 'dict_items'> print(dict1.keys()) #6.打印出字典的关键字 print(type(dict1.keys())) #<class 'dict_keys'> print(dict1.values()) #7.dict_values(['male', 27, 'alex']) print(type(dict1.values())) #<class 'dict_values'> print(dict1.popitem()) #8.删除键值对并返回剩余内容 print(dict1.pop('sex')) #9.删除键并返回值 dict1.setdefault('age',28) #10.如果age存在就保留默认值,否则添加一个键值对 print(dict1) print(dict1) dict2 = {'hobby':'ead'} dict1.update(dict2) #11.更新dict1,dict2不受影响 print(dict1,dict2)