一、数据类型的种类及主要功能

1、数字类型

  数字类型主要是用来计算,它分为整数类型int和浮点类型float

2、布尔类型

  布尔类型主要是用于判断,它分为真True和False两种

3、字符串类型

  字符串类型是以引号引用的内容,它主要是为了方便存储以及传送一些简单的数据

4、列表类型

  列表主要用来存储大量的数据内容,格式为 list = [a,b,c,d,e] 它可以存储任意数据类型

5、元组类型

  元组跟列表类似,只是它的内容不能被修改,格式为(a,b,c,d,e)

6、字典类型

  字典类型主要是存储键值对,可以更方便的管理以及调用数据,格式为{‘k1’:'v1', 'k2':'v2', 'k3':'v3'}

7、集合类型

  集合不太常用,与字典类似,但是只有值,而没有对应的健,格式为{a,b,c,d,e}

二、数据类型的互相转换

1、数字转换成字符串

 条件:无条件转换(任何数字类型均可以转换成字符串)

 方法:str(int)

2、字符串转换成数字

  条件:字符串必须由全数字组成

  方法:int(str)

3、数字转换成布尔值

  条件:无条件转换。数字为0则转换结果为False,非0则转换结果为True

  方法:bool(int)

4、字符串转换成布尔值

  条件:无条件转换。字符串为空则转换结果为False,非空则转换结果为True

  方法:bool("adsaf") = True    bool(False) = False

5、布尔值转换成数字

  条件:无条件转换。True的转换结果为1,False的转换结果0

  方法:int(bool)     

6、字符串转换成列表

  条件:无条件转换。可以用字符串的split()方法将一个字符串切分成N个字符串然后装进一个集合后返回

  方法:str.split()

7、列表转换成字符串

  条件:无条件转换。可以用 str.join(list) 将一个列表转换成字符串

  方法:" ".join(list)

三、数据类型的主要方法(函数)

1、数字类型

数据类型只需要记住一个方法,既:bit_length方法:

它是用来计算一个数字至少要用几位二进制码来表示,

如1的二进制码为00000001,那么它的bit_length即为1

而3的二进制码为00000011,那么它的bit_length即为2

1 i = 6
2 len_i = i.bit_length()
3 print(len_i) #结果为3

2、布尔类型

布尔类型也有bit_length方法,True的结果为1,False的结果为0

1 print(True.bit_length())  #结果为1
2 print(False.bit_length()) #结果为0

3、字符串类型  

字符串的索引

可以用字符串后面跟下标的方式来进行索引,而下标从0开始,至字符串的 len-1 格式为:str[index],如下:

1 s = 'fuyong'
2 print(s[0]) #结果为 F
3 print(s[3]) #结果为 o

字符串的切片

可以用字符串后面跟‘’下标:下标‘:步长’的方式来对字符串进行切片,格式为 str[index1:index2:step],如下:

1 s = 'fuyong'
2 print(s[0:4]) #结果为fuyo 0 是指从第一个开始切,而 4 代表从索引值为3 (即第四个字母)的地方结束,步长不写的话默认为1,即连续切
3 print(s[:4]) #结果为fuyo 如果第一个索引值不写,默认从最开始的地方切
4 print(s[1:]) #结果为uyong 如果第二个索引值不写,默认从第一个索引值对应的字符开始一直切到末尾
5 print(s[:]) #结果为fuyong 如果两个索引值都不写,默认从开始到末尾
6 print(s[3:-1]) #结果为 n 第二个索引值为-1的话即表示最后一个字符,也就是说切分从第五个值开始到最o后一个字符之前的一个数
7 print(s[0:4:2]) #结果为fy 最后一个2代表步长为2,即从 0-4 的之间每隔一个切一个
8 print(s[4:0:-1]) #结果为noyu 步长为-1 代表倒着数,此时第一个索引值一定要比第二个索引值大。注意:此时是取到第二个索引值对应的字符的前一位
9 print(s[4:0:-2]) #结果为ny,步长为-2,代表倒着数,每隔1个取一个进行切

字符串的方法    

注意:与列表不同,对字符串操作的所有方法是生成一个新的字符串,而不是直接修改原有的字符串!!!

字符串类型的方法比较复杂也比较重要。让我们来总结一下: 

capitalize() 方法:  

此方法是用于将字符串的首字母转为大写,如下:

1 s = 'fuyong'
2 print(s.capitalize()) #结果为 Fuyong

title()方法:

此方法的作用是将用空格、数字以及其他符号分开的单词或者其他字符串的首字母变成大写,如下:

1 print('fu yong'.title())  #结果为 Fu Yong
2 print('fu*yong'.title()) #结果为 Fu*Yong
3 print('fu3yong'.title()) #结果为 Fu3Yong
4 print('fu%#yong'.title()) #结果为 Fu%#Yong

swapcase()方法:

此方法是用于将字符串的大小写翻转,如下:

print('fuyong'.swapcase())      #结果为FUYONG
print('FuYong'.swapcase()) #结果为fUyONG

upper() 方法和 lower()方法:

这两种方法的作用是将字符串全部转换为大写(upper)或小写(lower),>如下:

1 print('fuyong'.upper())    #结果为FUYONG
2 print('Fu Yong'.lower()) #结果为fu yong

此方法一般用于在不区分大小写的情况下验证用户输入的字符串,如:

1 name = input('请输入您的帐号:')
2 password = input('请输入您的密码')
3 if name.upper() == 'FUYONG' and password.lower() == 'fuyong123':
4 print('恭喜您,登录成功!') # 运行之后用户输入的帐号为 ‘Fuyong’、‘fuYong’……密码输入‘fUyOnG123’ 、‘FuYoNG123’均可登录成功

startswith()和endswith()方法:

这两中方法是用来判断字符串以什么开头或者结尾,用法如下:

1 print('fuyong'.startswith('fu'))   #结果为True
2 print('fuyong'.endswith('g')) #结果为True

strip() 、lstrip()、rstrip()方法:

这三种方法的作用是删除左右两边的空格或者其他符号,可以指定只删除左边的或者只删除右边的,如下:

1 s1 = '  fuyong   '
2 print(s1.strip()) # 结果为‘fuyong# ’ 默认是将字符串两边的空格全部去掉
3
4 s2 = '***fuyong**'
5 print(s2.strip('*')) #结果为‘fuyong’ 可以指定删除的内容
6
7 print(s2.lstrip('*')) #结果为‘fuyong**’ 可以指定只删除左边的* 默认是删除左边 空格
8 print(s2.rstrip('*')) #结果为‘***fuyong’可以指定只删除右边的* 默认是删除右边 空格

replace()方法:

此方法是用来将字符串里的某些字符替换为新的字符,默认替换范围为整个字符串,也可以指定只替换几个。如下:

1 print('fu yong'.replace('yong','sir'))  #结果为 ‘fu sir’
2 print('fu yong'.replace(' ',' xiao ')) #结果为 ‘fu xiao yong’ 参数对于空格同样适用
3 print('abacad'.replace('a','x',1))    #结果为 'xbacad'    只替换第一个

split()方法:

此方法用于将一串字符串按要求进行分割,然后将分割结果返回存进一个列表中,默认以空格分割、且范围为整个字符串,也可以指定以第几个符号分割,如下:

1 print('fu yong'.split())        #结果为['fu', 'yong']
2 print('fuyong'.split('y')) #结果为['fu', 'ong']
3 print('fu|yong'.split('|')) #结果为['fu', 'yong']
4.print('fu*yong*ok')        #结果为['fu', 'yongok'

count()方法:

此方法用来统计一个指定字符或者一串字符串在一串大字符串种出现的次数,没有的话就返回0如下:

1 print('fuyong'.count('fu'))     # 结果为 1
2 print('hello'.count('l'))    # 结果为 2
3 print('world'.count('f'))    # 结果为 0

find()方法:

此方法用来查询一个指定字符或者一串字符串在一大串字符串中出现的位置索引,没有的话返回-1

1 print('fuyong'.find('u'))       #结果为 1
2 print('fuyong'.find('yon'))   #结果为 2
3 print('fuyong'.find('x'))    #结果为 -1

 index()方法:

 与find()方法类似,此方法用来查询一个指定字符或者一串字符串在一大串字符串中出现的位置索引,只是,如果搜索不到的话会报错

1 print('fuyong'.index('u'))       #结果为 1
2 print('fuyong'.index('yon'))   #结果为 2
3 print('fuyong'.index('x'))    #这个找不到,会报错 ValueError: substring not found

format()方法:

此方法主要用于格式化输出,实例如下:

 1 #第一种用法,{ } 里均为空,str.format()括号里的值跟str里{}一一对应
2 s1 = '{},欢迎您!现在是北京时间{}点,这里是{}的空间,点击查看{}的博客'
3 m1 = s1.format('yonghu',18,'fuyong','fuyong')
4 print(m1)
5
6 #第二种用法,{ }里可以写上索引值,会根据索引来索取str.format() 里的值,可以重复索取
7 s2 = '{0},欢迎您!现在是北京时间{1}点,这里是{2}的空间,点击查看{2}的博客'
8 m2 = s2.format('yonghu',18,'fuyong')
9 print(m2)
10
11 #第三种用法,{ }里写上健值,会根据健值来索取str.format()里的值,可以重复索取
12 s3 = '{user},欢迎您!现在是北京时间{time}点,这里是{name}的空间,点击查看{name}的博客'
13 m3 = s3.format(user = 'yonghu',time = 18,name = 'fuyong')
14 print(m3)
15
16 #输出结果均为: yonghu,欢迎您!现在是北京时间18点,这里是fuyong的空间,点击查看fuyong的博客

center()方法

此方法主要用来让一段字符串居中显示,并且两边可以填充内容以及指定总内容的长度,如下:

print('info'.center(30,'*'))
print('fuyong'.center(30,'-'))
print('29'.center(30,'-'))
print('end'.center(30,'*')) 输出结果为:

*************info*************
------------fuyong------------
--------------29--------------
*************end**************

isalnum()、isalpha()、isdigit()方法:

这三种方法用来判断一个字符串是否全部是字母或者数字组成、是否全部为字母组成,是否全部为数字组成

主要用来判断用户输入的东西,实例如下:

1 while True:
2 name = input('请输入您要注册的用户名(只能由字母组成):')
3 password = input('请输入您的注册密码(只能由字母和数字组成)')
4 phonenum = input('请输入您的电话号码(只能由数字组成)')
5
6 if name.isalpha() and password.isalnum() and phonenum.isdigit():
7 break
8 else:
9 print('输入的格式有误,请重新输入')

extandtabs()方法

此方法默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。如下:

(基本没什么卵用)

1 user1 = 'fuyong\thenan'
2 user2 = 'lixiang\tzhejiang'
3 user3 = 'zhangsan\theilongjiang'
4
5 print(user1.expandtabs())
6 print(user2.expandtabs())
7 print(user3.expandtabs()) 输出内容为:

fuyong  henan
lixiang zhejiang 
zhangsan        heilongjiang

注意:与列表不同,对字符串操作的所有方法是生成一个新的字符串,而不是直接修改原有的字符串!!!

公共方法:

len():

  计算一个字符串的长度

 print(len('fuyong'))         #结果为6
print(len('fuyong123'))    #结果为9

jion():

  用指定字符串进行拼接

 s = 'fuyong'
print('*'.join(s)) # 结果:f*u*y*o*n*g
print(' '.join(s)) # 结果:f u y o n g
print('__'.join(s)) # 结果:f__u__y__o__n__g

4、列表类型

  参见本人另一篇博客http://www.cnblogs.com/fu-yong/p/8066422.html

   里面详细讲述了列表的常用方法及操作

5、元组类型

   元组是用括号罗列一些元素,功能及方法与列表类似,只是元组里面的元素不能修改,称为“受限的列表”

  然而,当元组里面的元素包括一个或者多个列表的时候,列表内的元素是可以修改的,称为‘儿子不能修改,孙子可以修改’   jiong。。。。。。

6、字典类型

  参见本人另一篇博客http://www.cnblogs.com/fu-yong/p/8073912.html

   里面详细讲述了字典的常用方法及操作

7、集合类型

  参见本人另一篇博客http://www.cnblogs.com/fu-yong/p/8086280.html

   里面详细讲述了集合的常用方法及操作

细数Python中的数据类型以及他们的方法的更多相关文章

  1. Python笔记·第四章—— 细数Python中的数据类型以及他们的方法

    一.数据类型的种类及主要功能 1.数字类型 数字类型主要是用来计算,它分为整数类型int和浮点类型float 2.布尔类型 布尔类型主要是用于判断,它分为真True和False两种 3.字符串类型 字 ...

  2. Python中的数据类型以及他们的方法

    数据类型: 1)int i = 100 print(i.bit_length()) ''' bit_length 1 0000 0001 1 2 0000 0010 2 3 0000 0011 2 2 ...

  3. 细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一

    细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一(转) ADO.NET Entity Framework        ADO.NET Entity Framework 是微软以 ADO.N ...

  4. python学习第九讲,python中的数据类型,字符串的使用与介绍

    目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...

  5. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  6. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  7. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  8. python中基本数据类型以及运算符

    python中基本数据类型以及运算符的知识 一.与用户的交互以及python2与python的区别 1.1什么是与用户交互 用户交互就是人往计算机中input(输入数据),计算机print(输出结果) ...

  9. Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...

随机推荐

  1. vue2项目 :在hosts里面配置了装逼的模式。设置应用在127.0.0.1:80端口访问; 并将127.0.0.1指向www.yours.com ;问题“ Invalid Host header”

    转自博客:https://www.cnblogs.com/cynthia-wuqian/p/8575401.html 1.MAC设置应用在127.0.0.1:80端口访问: config/index. ...

  2. linux 从百度网盘下载文件的方法

    linux 从百度网盘下载文件的方法 发表于2015 年 月 日由shenwang 方法1.wget wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 ...

  3. 0052 Spring MVC入门--环境搭建--第一个入门示例

    Spring MVC是什么 Spring是一个框架,包括了MVC.IoC.AOP等等组件 MVC是一种思想,并非Spring框架独有,全称是Model.View.Controller,即模型.视图.控 ...

  4. CCNA2.0笔记_安全管理设备

    设备安全 配置Console密码 Switch(config)#line console 0 Switch(config-line)#login Switch(config-line)#passwor ...

  5. 机动车驾驶员计时培训系统符合性检测平台TCP服务器设计和开发

    驾校计时平台的TCP服务器,主要用于接入计时终端,计时终端与计时平台.计时平台与省级监管服务平台.省级监管服务平台与全国驾培平台的卫星定位过程明细数据和学时过程明细数据接口应使用基于JT/T 808标 ...

  6. Jquery学习笔记(8)--京东导航菜单(2)增加弹框

    京东导航,添加中间的弹框栏,使用position定位,放在左侧栏的li标签里面,成为一个整体,保证鼠标在弹框里的时候,弹框不消失: <!DOCTYPE html> <html lan ...

  7. iOS开发中的内存管理

    一.为什么要进行内存管理 系统资源有限,iOS会为每一个执行的程序分配30M的内存,超过20M会收到内存警告,超过30M将会终止应用程序.因此,要及时回收一些不须要再继续使用的内存空间,比方回收一些不 ...

  8. a5调试

    1 generating rsa key...[    4.452000] mmc0: error -110 whilst initialising SD card[    5.602000] mmc ...

  9. 【BZOJ】3479: [Usaco2014 Mar]Watering the Fields(kruskal)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3479 这个还用说吗.... #include <cstdio> #include < ...

  10. abp项目如何按业务功能模块横向分割?

    1.为什么要做分层? 请先看项目分层的最后结构: 2.设计的初衷 项目较大,且主题鲜明,分为:BI模块.DM-用户洞察模块.Manage-应用管理模块.Report应用分析报表模块,大模块之间并无依赖 ...