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

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. hbase replication原理分析

    本文只是从总体流程来分析replication过程,很多细节没有提及,下一篇文章准备多分析分析细节.   replicationSource启动过程 org.apache.hadoop.hbase.r ...

  2. layui进度条bug

    对于动态及生成的进度条,在渲染时候要使用element.init();element.init();element.progress('demo', percent+'%');

  3. 使用java语言如何更好的使用多线程?

    ① 高并发.任务执行时间短的业务,线程池线程数可以设置为CPU核数+1,减少线程上下文的切换. ② 并发不高.任务执行时间长的业务要区分开看: 假如是业务时间长集中在I/O操作上,也就是I/O密集型的 ...

  4. spring-core依赖jar包

  5. C#非常规调试场景总结

    场景1:类库独立调试.          方法:可以将类库项目修改成控制台程序,然后增加一个静态的main函数的方式来调试 场景2:程序需要连接数据库,本机调试的时候因为权限问题无法连接上数据库,只能 ...

  6. eclipse JavaEE版"javax.servlet.http.HttpServlet" was not found on the Java Build Path问题的解决办法

    使用eclipse JavaEE 版,新建 Dynamic Web Project 项目.在项目里添加 JSP 文件,会在文件头部出现错误提示.提示语句为:The superclass "j ...

  7. android mvp设计模式

    什么是MVP MVP,全称 Model-View-Presenter.要说MVP那就不得不说一说它的前辈——MVC(Model-View-Controller,模型-视图-控制器). View:对应于 ...

  8. va_list中的_vsntprintf使用介绍

    相信大家都用过sprintf这个函数,就是下面这样: int sprintf( char *buffer, const char *format [, argument] ... ); 在之前看到了用 ...

  9. 【ARDUINO】HC-05蓝牙不配对问题

    除了刷主从之外,不配对的原因有1:已经配对其他设备,需用AT+RMAAD来移除.2.默认为蓝牙由绑定指令设置,需改为任意地址连接模式AT+CMODE=1 //#define AT 2 #define ...

  10. iOS -转载-字符串是否为空判断方法

    - (BOOL)blankString{ if (![self isKindOfClass:[NSString class]] ){ return YES; } if ([self isEqual:[ ...