Python笔记·第四章—— 细数Python中的数据类型以及他们的方法
一、数据类型的种类及主要功能
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中的数据类型以及他们的方法的更多相关文章
- [Python笔记][第四章Python正则表达式]
2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...
- 进击的Python【第四章】:Python的高级应用(一)
Python的高级应用(一) 本章内容: 内置函数 生成器 迭代器 装饰器 JSON和PICKLE的简单用法 软件目录结构规范 一.内置函数 1.数学运算类 abs(x) 求绝对值1.参数可以是整型, ...
- Python自学:第四章 在for循环中执行更多操作(2)
# -*- coding: GBK -*- magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(ma ...
- Python自学:第四章 在for循环中执行更多操作(1)
# -*- coding: GBK -*- magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(ma ...
- Android群英传笔记——第四章:ListView使用技巧
Android群英传笔记--第四章:ListView使用技巧 最近也是比较迷茫,但是有一点点还是要坚持的,就是学习了,最近离职了,今天也是继续温习第四章ListView,也拖了其实也挺久的了,list ...
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...
- 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度
20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...
- 《Linux内核分析》读书笔记(四章)
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
- 4 Visual Effects 视觉效果 读书笔记 第四章
4 Visual Effects 视觉效果 读书笔记 第四章 Well, circles and ovals are good, but how about drawing r ...
随机推荐
- ORM框架SQLAlchemy与权限管理系统的数据库设计
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用对象关系映射进行数据库操作,即:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. 执行流 ...
- mysql数据库第二弹
mysql数据库针对表的操作 表记录的增删改查 1.增加一张表 插入记录之前必须得先有表结构! CREATE TABLE score( id int PRIMARY KEY auto_incremen ...
- setTimeout和setInterval实现滚动轮播中,清除定时器的思考
PS:希望各路大神能够指点 setTimeout(function,time):单位时间内执行一次函数function,以后不执行:对应清除定时器方法为clearTimeout; setInterva ...
- css 模板
css RESET @CHARSET "gbk"; /*设置编码*/ body,h1,h2,h3,h4,h5,h6,hr,p,blockquote, /** 结构元素 **/ dl ...
- 源码剖析Django REST framework的认证方式及自定义认证
源码剖析Django REST framework的认证方式 在前面说过,请求到达REST framework的时候,会对request进行二次封装,在封装的过程中会对客户端发送过来的request封 ...
- (一)IDEA工具开第一个springboot应用之helloworld
(一)IDEA工具开第一个springboot应用之helloworld 一.前置知识 1.maven相关知识 2.spring注解 3.RESTful API 二.idea开发第一个springbo ...
- 编写带对话框界面的OCX
编写带对话框界面的OCX步骤: 1.添加Dialog资源,切换到资源视图,将对话框的Style设置为Child,在对话框界面右击添加类,输入类名MyDlg,使得其继承与CDialogEx.(继承CDi ...
- 十二、Hadoop学习笔记————Hive的基本原理
一般用户用CLI(命令行界面)接口,元数据库含有表结构 单用户.多用户.远程服务 生成db文件,只能单客户端使用数据库 多用户是最常用的使用模式 配置与多用户一致 数据格式用户自定义 所有的表都存于改 ...
- 多服务器操作利器 - Polysh
多台服务器下的痛苦人生 分布式架构下的系统,可以说每个服务都是分别部署在多台服务器上的,有的甚至还需要多机房,在这种架构下可以说可以很好的做到了易扩展.容灾等功能.推荐的服务部署为一服务多机器.一机器 ...
- 程序员的自我救赎---1.4.2: 核心框架讲解(BLL&Tool)
<前言> <目录> (一) Winner2.0 框架基础分析 (二) 短信中心 (三)SSO单点登录 (四)PLSQL报表系统 (五)钱包系统 (六)GPU支付中心 (七)权限 ...