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

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笔记·第四章—— 细数Python中的数据类型以及他们的方法的更多相关文章

  1. [Python笔记][第四章Python正则表达式]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...

  2. 进击的Python【第四章】:Python的高级应用(一)

    Python的高级应用(一) 本章内容: 内置函数 生成器 迭代器 装饰器 JSON和PICKLE的简单用法 软件目录结构规范 一.内置函数 1.数学运算类 abs(x) 求绝对值1.参数可以是整型, ...

  3. Python自学:第四章 在for循环中执行更多操作(2)

    # -*- coding: GBK -*- magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(ma ...

  4. Python自学:第四章 在for循环中执行更多操作(1)

    # -*- coding: GBK -*- magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(ma ...

  5. Android群英传笔记——第四章:ListView使用技巧

    Android群英传笔记--第四章:ListView使用技巧 最近也是比较迷茫,但是有一点点还是要坚持的,就是学习了,最近离职了,今天也是继续温习第四章ListView,也拖了其实也挺久的了,list ...

  6. 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度

    <Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...

  7. 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度

    20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...

  8. 《Linux内核分析》读书笔记(四章)

    <Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...

  9. 4 Visual Effects 视觉效果 读书笔记 第四章

    4   Visual Effects    视觉效果        读书笔记 第四章 Well, circles and ovals are good, but how about drawing r ...

随机推荐

  1. FLP不可能性(FLP impossibility)

    FLP不可能性(FLP impossibility) FLP impossibility是一个定理,它证明了在分布式情景下,无论任何算法,即使是只有一个进程挂掉,对于其他非失败进程,都存在着无法达成一 ...

  2. 直接调用VS.net2005中的配置界面

    以前做Winform程序,居然专门做一个界面来配置连接字符串.今天无意中发现:竟然可以直接调用VS.net2005中的配置界面来处理. 使用方法也非常简单: 引用C:\Program Files\Mi ...

  3. 《天书夜读:从汇编语言到windows内核编程》八 文件操作与注册表操作

    1)Windows运用程序的文件与注册表操作进入R0层之后,都有对应的内核函数实现.在windows内核中,无论打开的是文件.注册表或者设备,都需要使用InitializeObjectAttribut ...

  4. 使用Javascript获取当前目录的绝对路径

    转自http://heeroluo.net/Article/Detail/101 一谈到路径相关的问题,大家都会往window.location上想,确实这个对象提供了相当多的路径信息,其中常用的就包 ...

  5. 对java泛型的理解

    正确的应用java泛型的特性可以更好的实现编程的开闭原则(对扩展开放,对修改关闭),这得益于java泛型提供的在程序运行时获取对象声明类型的特性. 静态语言的特性是在程序编译前进行声明,这样程序在编译 ...

  6. spring boot 错误,求大神帮解决

    Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path attr ...

  7. 详解卷积神经网络(CNN)在语音识别中的应用

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:侯艺馨 前言 总结目前语音识别的发展现状,dnn.rnn/lstm和cnn算是语音识别中几个比较主流的方向.2012年,微软邓力和俞栋老 ...

  8. spring cloud feign不支持@RequestBody+ RequestMethod.GET,报错

    1.问题梳理: 异常:org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not ...

  9. SpringCloud学习笔记(1)——Eureka

    Spring Cloud Spring Cloud为开发者快速构建通用的分布式系统(例如:配置管理.服务发现.断路器.智能路由.微代理.控制总线.一次性的Token.全局锁.领导者选举.分布式会话.集 ...

  10. jsp加java连接数据库,进行信息输入,并进行初步的拦截判断。

    图形大概这样 按照图片要求设计添加新课程界面.(0.5分) 在后台数据库中建立相应的表结构存储课程信息.(0.5分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨子光五位教 ...