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

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. matplotlib之legend

    在<matplotlib极坐标系应用之雷达图> 中,我们提出了这个问题“图例中每种成员的颜色是怎样和极坐标相应的成员的颜色相对应的呢”,那么接下来我们说说legend的一般使用和设置. 调 ...

  2. javascript的弹框

    学习js最先了解到的两种种简单测试手段就是alert("blah");和console.log("blah");了. 除了alert之外,js还有两种弹框 co ...

  3. Linux(deepin)安装Oracle JDK

    sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-i ...

  4. Java 调用 C/C++ 之 JNA 系列实战篇 —— 输出char * (六)

    一. 工作环境 1. windows (64位), JDK (64位),dll文件 (64位) 2. Linux (64位),      JDK (64位),so文件 (64位) 3. JNA的官方资 ...

  5. (转)Python爬虫学习笔记(2):Python正则表达式指南

    以下内容转自CNBLOG:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 1. 正则表达式基础 1.1. 简单介绍 正则表达式并 ...

  6. 《Windows游戏编程大师技巧》学习笔记——关于创建显示表面

    1.如你所知,显示在屏幕上的图像仅仅只是是以某种格式存储在内存中的有色像素组成的矩阵.或是调色板化的或是RGB模式的.在不论什么一种情况下.要想做点什么你都必须知道如何绘制图到内存中,然而Direct ...

  7. ubuntu 安装 avahi服务

    sudo apt-get install avahi-daemon sudo apt-get install avahi-utils

  8. scrollHeight、clientHeight、offsetHeight、scrollTop等的定义以及图解

    开发中经常遇到使用scrollHeight.scrollTop.clientHeight.offsetHeight等的情况,网上有众多关于这些属性的解释,但是并不全面和直观,现在将这些属性结合图例整理 ...

  9. 7、手把手教React Native实战之ReactJS

    ReactJS核心思想:组件化  维护自己的状态和UI  自动重新渲染 多个组件组成了一个ReactJS应用 React是全局对象   顶层API与组件API React.createClass创建组 ...

  10. python bottle学习(二)加载配置文件

    from bottle import (run, route, get, post, default_app, Bottle) """ 首先获得一个app对象,有两种方法 ...