python的数据类型及操作
简述python的几种简单的数据类型及使用方式
引入内存空间得概念,开辟一个数字类型占32位(32位机器),一个字符占8位bit。
当图中每个bytes都是char类型得时候,那么从内存取出来就是转换成字符(按编码表转换)。
字符串
字符串是不可变数据类型,拥有多种内置方法可以操作。
创建字符串就是给变量分配一个字符串的值即可。通常用引号创建字符串。
tell = 'my name is Jeff'
tell1 = "my name is Jeff"
tell2 = '''my name is Jeff,
I'm oldboy .'''
字符串切片
tell = 'my name is Jeff'
print(tell[0])
print(tell[:7])
print(tell[:7]+'\tfrank')
运行结果
m
my name
my name frank
使用split方法
tell = "my name is jeff "
print(tell.split('a'))
运行结果
['my n', 'me is jeff ']
字符串格式化输出
print('my name is %s'%('jeff'))
运行结果
my name is jeff
print('my name is {name}'.format(name='jeff'))
运行结果
my name is jeff
字符串的内置方法
1.capitalize(整个字符串首字母大写,其他全部改为小写)
2.upper(整个字符串全部大写)lower(全部小写)
3.center(指定宽度和填充字符)
tell = "my name Is jeff "
print(tell.center(50,'*'))
运行结果
*****************my name Is jeff *****************
4.count(区间内某个字符的个数)
tell = "my name Is jeff "
print(tell.count('m',0,5))
运行结果
1
5.encode(编码方式)
6.endswith(以某字符,字符串结尾)
tell = "my name Is jeff"
print(tell.endswith("ff"))
运行结果
Ture
7.expandtabs(选择制表符的宽度)
8.find(索引字符的位置,没有返回值为-1)index(同find,但是他查不到会报错)rfind(从右向左查同find)rindex(从右向左返回索引值同index)
9.format(格式化输出)format_map(格式化输出,以字典形式存储kv数据)
people={
'name':['Frank','Caroline','jeff'],
'age':['',''],
}
print("My name is {name[2]},i am {age[0]} years old !".format_map(people))
运行结果
My name is jeff,i am 23 years old !
10.isalnum(是否是数字与字母的组合)isalpha(是否是字母组合)isdecimal(是否是十进制正整数)isdigit(是否是真整数)isdentifier(是否是python中的标识符)islower(判断字符串字母是不是都是小写)isnumeric(是不是数字,无论中文还是其他只要是数字就能判断)isprintable(是否可打印)isspace(是否都是空格,tab/r等)istitle(是否所有字符首字母大写)返回值都是bool值
11.join(以指定字符连接生成新的字符串)
tell = "my name Is jeff"
print('='.join(tell))
运行结果
m=y= =n=a=m=e= =I=s= =j=e=f=f
12.ljust与rjust指定字符宽度填充,与center类似
tell = "my name Is jeff"
print(tell.ljust(20,'='))
print(tell.rjust(20,'='))
运行结果
my name Is jeff=====
=====my name Is jeff
13.lstrip,rstrip,strip去前后空白\r\n等
14.maketrans,translate
intab = "abcde"
outtab = ""
tell = "my name Is jeff"
trantab = tell .maketrans(intab, outtab)
print (tell.translate(trantab))
运行结果
my n1m5 Is j5ff
15.partition(指定分隔字符,返回一个元组里)rpartition(从右向左分割,只分割一次,若没有指定字符返回元祖前面加两个空字符串)split(指定字符分割,可指定分割次数分割后删除指定的字符默认空格分割)rsplit(同split只是从右向左)
16.replace(指定字符替换为新的字符,可指定个数)
17.splitlines(将字符串转换为列表)
18.startswith(是否是字符串或字符开头)
19.swapcase(大小写互换)
20.zfill(与center类似,显示在右边不足宽度补零)
整型与长整型
整型是不包含小数部分的数值,格式是“int”。长整型(无穷精度)与整型(32位)类似只是数字比较大,格式是“type”。且长整型只存在于python2中,32位机器上取值范围是-2**31~2**31-1,在64位机器上取值为-2**63~2**63-1。在python3中没有整型与长整型的区分,只有整型。
浮点型
我们可以简单的把浮点型看做是小数。格式类型是“float”。浮点型除了作为小数输出还常用于科学计数法中。
a=1.23e10
b=1.23E10
print(a)
print(b)
print(type(a))
print(type(b))
输出结果
12300000000.0
12300000000.0
<class 'float'>
<class 'float'>
bool型
bool类型的返回值只有两种:True和False。
逻辑运算:
1.与运算:and(两个都为True,结果才为True)
2.或:or(只要一个为True,则为True)
3.非:not(把True变为False,把False变为True)
短路运算:
布尔类型还可以与其他数据类型进行逻辑运算,python中0、空字符串、None、空列表、空字典等为False,其他数值和非空字符串为True。
1.在计算a and b时,如果a是True,则计算结果取决于b,则返回b;如果a是False,则直接返回a。
2.在计算a or b时,如果a是True,则直接返回a;否则返回b。
bool类型还可以当做整型的0和1使用。
print(True+13) #True为1
print(False+13) #False为0
输出结果
14
13
列表
列表是由一系列按特定顺序排列的元素组成。在python中,用方括号表示列表,并用逗号来分割其中的元素,格式类型为“list”。
列表的内置方法有:
1.append(在列表的最后添加某个元素)insert(也是添加元素,但是可以通国索引指定插入具体位置)
2.count(某个元素的个数)
3.clear(清空列表)
4.copy(复制列表)
name = ['jeff','Frank',1,{'xixi':'sabi'},[3,4]]
name_cp = name.copy()
print(name_cp)
name[0]='Tom'
name[2]= 7
print(name)
print(name_cp)
运行结果
['jeff', 'Frank', 1, {'xixi': 'sabi'}, [3, 4]]
['Tom', 'Frank', 7, {'xixi': 'sabi'}, [3, 4]]
['jeff', 'Frank', 1, {'xixi': 'sabi'}, [3, 4]]
注:改变列表name中的元素name.copy中的值也随着变化。但是改变列表name中的列表值,name.copy的列表值是不会变得。由于列表中的列表开辟的空间是不变的(列表本身是可变数据类型)name与name.copy指向的是同一个地址,里面存储的值会一起改变。
5.deepcopy与copy类似,但是无论copy原列表如何变化,deepcopy的列表都会与列表一起变化,即两者指向统一的数据空间。
6.extend(函数用于在列表末尾一次性追加另一个序列中的多个值,用新列表扩展原来的列表。)
name = ['Saber','Frank']
nameto = ['Mei','Jack']
name.extend(nameto)
print(name)
运行结果
['Saber', 'Frank', 'Mei', 'Jack']
7.index(查找相应元素的索引值,可指定索引范围并且查不到也不会报错)
8.pop(弹出元素,不指定默认弹出最后一个值,索引失败会报错,弹出的值可以存储到其他列表或变量里。)remove(也是移除,可指定移除的具体元素)del(无敌的移除手段)
9.reverse(将列表中元素反转过来)
10.sort(将列表排序,永久修改可通过reverse=True传递倒着排序)sorted(与sort类似但是不改变原列表的元素)
11.len(查看列表的长度)
元组
与列表很相似,只是不可以进行修改。若是要改变元组中的值只能够改掉整个元组咯。
集合
集合是无需元素组成,打印时顺序也是无序的,但是集合中没有重复的元素,所以我们常使用集合去重。
我们有两个集合a与b:
a与b的交集为a.intersection(b)或者a & b。
a与b的差集为a.difference(b)或者a-b。
a与b的并集为a.union(b)或者a|b。
反向差集与对称差集(并集减去交集)为a.symmetric_difference(b)或者a^b。
合并为a.update(b),a.difference_update(b)求差集并赋值给a集合
删除元素可用discard(元素)或者remove(元素),pop()是随机删除一个元素。
注:set是可变数据类型,但是set里面的元素一定是不可变数据类型。
字典
在python里面,字典就是一系列的键-值对,每个键都与一个值是对应的,键可以是数字、字符串、列表和字典。任何python对象都可用作字典的值。
字典中常用的内置方法有:
keys(取出字典中的key)
values(取出字典中的value)
clear(清空所有键值对)
copy(与列表一致)
fromkeys(创建新的列表所有的值都是同一个value)
key = (1,2,3,4,5)
value = ('a','b','c','d','e')
print(dict.fromkeys(key,value))
运行结果
{1: ('a', 'b', 'c', 'd', 'e'), 2: ('a', 'b', 'c', 'd', 'e'), 3: ('a', 'b', 'c', 'd', 'e'), 4: ('a', 'b', 'c', 'd', 'e'), 5: ('a', 'b', 'c', 'd', 'e')}
a = {"k1":123, "k2":456, "k3":789}
b = a.fromkeys(["k1", "k2", "k3"], "")
print(b)
#输出 {'k2': '876', 'k3': '876', 'k1': '876'}
get(查找的一种方式,找不到对象返回None)
item(返回键值对)
pop(指定key,弹出此键值对)
popitem(弹出最后一个键值对返回到元组中,没有会报错)
update(将新的字典添加到原来的字典,若原来的字典包含了这个键则覆盖原来的值)
setdefault(k,v)如果键在字典中,则返回这个键的值,如果不在字典中,则向字典中插入这个键,并返回value,默认value位None。
bytes
所有的字符存到存储单元里都是bytes类型。
这里简述了集中python中常用数据类型以及内置的一些使用方法,方便以后对python的学习在此总结一下。
python的数据类型及操作的更多相关文章
- Python常见数据类型及操作
基础数据类型 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但计算机并不能,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’ ...
- 7.Python初窥门径(数据类型补充,操作及注意事项)
python(数据类型补充,转换及注意事项) 数据类型补充 str str.capitalize() 首字母大写 str.title() 每个单词首字母大写 str.count() 统计元素在str中 ...
- python基本数据类型之操作
python注释 当行注视:# 被注释内容多行注释:""" 被注释内容 """ 字符串操作 # 代表单行注释 ...
- Python 1 数据类型的操作
一.数字(Number) 1.数学函数: 函数 返回值 ( 描述 ) abs(x) 返回数字的绝对值,如abs(-10) 返回 10 ceil(x) 返回数字的上入整数,如math.ceil(4.1) ...
- python基本数据类型2——操作
字符串 name = "alex" # 移除两边的空格 print(name.strip()) #strip不修改值 # 是否以"al"开头 print(nam ...
- python基本数据类型的操作
1 列表和元组 1.列表基本操作 1. 列表赋值 a = [1,2,3,4,5,6,7,8] a[0] = 100 #the result : [100, 2, 3, 4, 5, 6, 7, 8] 2 ...
- python基本数据类型与操作
一.变量 1.变量的三要素:变量名.变量值.变量数据类型 2.定义变量格式:变量名称 = 变量值 3.输出变量:print(变量名) """ 变量 "" ...
- 第二章:Python基础の快速认识基本数据类型和操作实战
本课主题 字符串和操作实战 二进制操作实战 List 列表和操作实战 Tuple 元組和操作实战 Dict 字典和操作实战 作業需求 引言 这遍文章简单介绍了 Python 字符串和集合的方法和应用, ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
随机推荐
- html 获取宽高
jquery获取元素宽高的方法如下 1.元素自身高度 $("#div").height(); 2.元素自身高度 + padding $("#div").inne ...
- 关于echarts使用的常见问题总结
关于echarts使用的问题总结1.legend图例不显示的问题: 在legend中的data为一个数组项,数组项通常为一个字符串,每一项需要对应一个系列的 name,如果数组项的值与name不相符则 ...
- java基础(十二章)
一.变量的作用域(有效的使用范围) 1.变量有2种 1.1成员变量(属性) 声明在类的里面,方法的外面 1.2 局部变量 声明在方法里面或for循环结构中 2.调用时的注意事项(初始值不同.作用域不同 ...
- 初识 ActiveMQ
其实算不上初识了,工作一年来一直都有接触 mq 相关的东西.但是,从来都是粘贴复制别人的配置代码,却从未认真系统的学习过它,现在线上用 mq 的项目出问题了,老板在后面拿枪指着呢,不得不好好研究下了. ...
- iOS bug调试技巧学习----breakpoint&condition
给断点添加条件 - (void)testCondition2 { NSArray *array = @[@"我们", @"一起", @"来" ...
- ListView实现下拉刷新和上拉加载功能
1 public class RefreshListView extends ListView implements OnScrollListener { private View mHeaderVi ...
- Jenkin-持续集成
1.Jenkins安装 本文将会介绍如何在windows 中安装Jenkins,并且使用Jenkins进行项目的构建. 首先我们进入到Jenkins 的官网下载地址:https://jenkins.i ...
- 关于cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题(不需要修改任何代码,只需要一个配置)
前言:今天在网上无意间看到cas单点登录排除请求的问题,发现很多人在讨论如何通过改写AuthenticationFilter类来实现忽略/排除请求URL的功能:突发奇想搜了一下,还真蛮多人都是这么干的 ...
- Python:Anaconda安装虚拟环境到指定路径
1 曾经的困扰 有段时间,想使用基于不同python版本的anaconda,就直接从官网下载了两个不同的anaconda版本进行安装.刚开始的时候,还觉得也没啥问题.用了一小段时间,在安装其他的第三方 ...
- [Unity] A* pathfinding project integrated with influence map
简介 最近一阶段重温了一些关于游戏人工智能方面的书籍. 加强了对influence map的认知.想要亲自动手实现一下. 正如文章标题所示,这篇文章讲的是:如何将influence map的机制融入到 ...