Python是一门解释型语言,它的优势在于代码简洁,易于理解,可以通过大量已封装好的内建方法和第三方模块方法完成日常所需的操作。下面主要归纳了一些经常使用的基本数据类型操作;

--------------------------------------------------字  符  串--------------------------------------------------

  • 索引

起始下标为0 (从前往后数),末尾下标为-1(从后往前数)

str_a = 'hello python'
print(str_a[0])  #打印结果:h
print(str_a[-1])  #打印结果:n
  • 切片

格式:[起始位置:终止位置:步长],默认的步长为1

str_a = 'hello python'
print(str_a[0:12:3])  #打印结果:hlph
  • 拼接

字符串有两种拼接方法,第一种:str1+str2  第二种:','.join((str1,str2)),join方法内的参数是一个可迭代类型的数据

str_a = 'hello'
str_b = 'python'
print(str_a + str_b)  #打印结果:hellopython
print(','.join((str_a, str_b)))  #打印结果:hello,python
  • 格式化输出

Python中字符串格式化输出的方式有三种:

1、传统的格式化方法:%

%s:为字符占位(任意类型)

%d:为数值类型占位

%f:为浮点数占位,默认保留6位小数

print('我是%s' % '小明')  #打印结果:我是小明
print('今年%d岁' % 24)  #打印结果:今年24岁
print('身高%.2f' % 1.7381)  #打印结果:身高1.74

2、format格式化输出

字符串中有多少{},format中就可以传入多少个数据,依次填充;并且format中的参数可以比{}个数多,但不能少,否则会报错

str_a = 大家好,我叫{},今年{}岁
print(str_a.format('小明', 18))  #打印结果:大家好,我叫小明,今年18岁
#保留小数点后面的位数
print('今天的猪肉价格是{:.2f}元'.format(28.623))  #打印结果:今天的猪肉价格是28.62元
#将小数按百分比的形式显示
print('百分比{:.2%}'.format(0.34))  #打印结果:百分比34.00%

3、表达式F

name = '小红'
age = 18
s3 = F'我的名字{name},年龄{age}'
print(s3)  #打印结果:我的名字小红,年龄18
  • 常用方法:

find(参数1,参数2):查找字符串片段在字符串中出现的起始下标位置,参数1表示要查找的字串,参数2表示查找的起始位置,如果没有找到字串则返回-1

str_a = '123abc456def'
res = str_a.find('c', 3)  #res的结果为5

replace(参数1,参数2,参数3):替换指定的字符串片段,参数1表示要替换的字符串片段,参数2表示替换之后的字符串片段,参数3指定替换的次数(默认为替换所有的)

str_a = '123abc456def456456'
res = str_a.replace('', '', 2)  #res的结果为123abc789def789456

split(参数1,参数2):指定分割点对字符串进行分割,参数1表示分割点,参数2指定分割的次数(默认找到的所有分割点及您进行分割)

str_a = '123abc456def456abc456'
res = str_a.split('abc', 1)  #res的结果为['123', '456def456abc456']

count():统计字符串片段在字符串中出现的次数,统计子串出现的次数,若不存在则返回0

str_a = '123abc456def456abc456'
res = str_a.count('')  #res的结果为3

upper():将小写字母转为大写字母

str_a = '123aBc456DeF456Abc456'
res = str_a.upper()  #res的结果为123ABC456DEF456ABC456

lower():将大写字母转为小写字母

str_a = '123aBc456DeF456Abc456'
res = str_a.lower()  #res的结果为123abc456def456abc456

字符串出了上述内建方法之外,还有很多其他方法,比如:title()、capitalize()、swapcase()等

--------------------------------------------------列  表--------------------------------------------------

列表、元组和字符串一样,都是可迭代数据类型,因此它们都支持索引和切片操作,这里不多赘述。此外列表更相比于元组具有更丰富得操作空间,像队列、栈、堆这些数据结构也都和列表有关系。那么列表又有哪些常用的操作呢?

我们向列表增加元素:

list_a = [1, 9, 6, 3, 1, 4, 5]
# 在列表末尾添加一个元素
list_a.append(7)
print(list_a)  #list_a结果为:[1, 9, 6, 3, 1, 4, 5, 7]
# 向列表中插入一个元素(参数1:下标索引,参数2:值)
list_a.insert(5, 8)
print(list_a)  #list_a结果为:[1, 9, 6, 3, 1, 8, 4, 5, 7]
#在列表末尾添加多个元素(可迭代类型的数据)
list_a.extend([2, 3])
print(list_a)  #list_a结果为:[1, 9, 6, 3, 1, 8, 4, 5, 7, 2, 3]

同时列表删除元素的方法也有多种:

remove:删除指定的元素(删除找到的第一个元素)

pop:指定下标位置进行删除(未指定下标时默认删除最后一个)

clear:清空列表中的所有元素

排序:

sort

list_a = [1, 9, 6, 3, 1, 4, 5]
list_a.sort()
print(list_a)  #list_a结果为:[1, 1, 3, 4, 5, 6, 9]

sorted

list_a = [1, 9, 6, 3, 1, 4, 5]
list_b = sorted(list_a)
print(list_b)  #list_b结果为:[1, 1, 3, 4, 5, 6, 9]

sort和sorted默认均为升序排序,它们最大的区别在于sort是将列表本身排序,且sort方法没有返回值,而sorted有返回值,必须有个变量接收其结果,列表本身是没有排序的。

除此之外还有反转reverse()、统计元素出现的次数count()、查找元素索引index()、清空clear()等方法。

--------------------------------------------------字  典--------------------------------------------------

给字典增加元素:

dict_1 = {'aa': 8888, 'bb': 22, 'cc': 33}
dict_1['dd'] = 44
print(dict_1)  #打印结果:{'aa': 8888, 'bb': 22, 'cc': 33, 'dd': 44}

上面这种方式添加元素,如果键已在字典中不存在,才会添加新的键值对,否则会修改键对应的值

给字典增加多个元素:

dict_1 = {'aa': 8888, 'bb': 22, 'cc': 33}
dict_1.update({'c': 1, 'd': 1})
print(dict_1)  #打印结果:{'aa': 8888, 'bb': 22, 'cc': 33, 'c': 1, 'd': 1}

字典的删除方法也有几种:

  • 通过键删除键值对: dict_1.pop('cc')
  • 删除字典末尾的一个键值对: dict_1.popitem()
  • 删除任意位置的键值对: del dict_1['bb']

字典的查询方法:

  • 通过键查找:dict_1['aa'] 或者 dict_1.get('aa')
  • 获取字典中所有的键:list(dict_1.keys())
  • 获取字典中所有的值:list(dict_1.values())
  • 获取字典中所有的键值对:list(dict_1.items())

清空字典: dict_1.clear()

例举一些数据类型转换操作:

字符串转列表: list('python')

列表转字符串:

''.join(['h', 'e', 'l', 'l', 'o'])

列表转字典: dict(zip(['a', 'b'], [1, 2]))

各种数据类型之间都可以互相转换,这里就不一一举例了。

番外知识点:这里介绍一个保证浮点数精度的模块decimal,如果想要在有浮点数参与的计算中确保结果的精度不会丢失,那么decimal就派上用场了,具体使用方法如下,

print(0.1+0.11)  打印结果:0.21000000000000002

以上可以看出结果精度明显有问题,这个问题出在0.1的二进制在计算机中无限循环,多余部分会被截取,最后会导致在某些运算条件下出现精度丢失的情况,使用decimal如何避免呢,如下:

from decimal import Decimal
print(Decimal(str(0.1)) + Decimal(str(0.11)))  #打印结果:0.21

在科学计算或者金钱计算时考虑使用这种数值计算方法,一般不建议使用,因为这种计算方式执行效率比浮点数计算要低。

Python基础(二):操作基本数据类型的更多相关文章

  1. redis基础二----操作set数据类型

    set集合是无序的,不能存在重复元素 bbb吃重复元素,是不能添加成功的 2 接下来分析zset,是有序的,你在添加的时候要指定元素的序列号 上面的 3 4 5 6 就是指定的元素的序列号 withs ...

  2. Python 基础 二

    Python 基础 二 今天对昨天学习的Python基础知识进行总结,学而不思则惘,思而不学则殆! 一.先对昨天学习的三大循环的使用情况进行总结: 1.while循环的本质就是让计算机在满足某一条件的 ...

  3. python基础(二)----数据类型

    Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...

  4. Python基础(二) —— 字符串、列表、字典等常用操作

    一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 二.三元运算 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为 ...

  5. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  6. python基础之五大标准数据类型

    学习一门语言,往往都是从Hello World开始. 但是笔者认为,在一个黑框框中输出一个"你好,世界"并没有什么了不起,要看透事物的本质,熟悉一门语言,就要了解其底层,就是我们常 ...

  7. python3 基础二——基本的数据类型三

    一.字符串str 1.创建字符串,为变量分配一个值 word='字符串' sentence="字符串\n" #python中单引号和双引号使用完全相同 paragraph=&quo ...

  8. Java基础(二) 基本类型数据类型、包装类及自动拆装箱

    我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ...

  9. python基础二(基础数据类型)

    一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...

随机推荐

  1. E. Remainder Problem 分块

    两个操作 1对x位置的a[x]+y 2对所有i=y(mod x)求a[i]的和 我们肯定不能n^2 跑,稳超时,但是我们可以这样分块考虑. 为什么n^2不行?因为在x比较小的时候,这个求和操作次数太多 ...

  2. Python基础之(三)----PyGame安装步骤

    http://blog.csdn.net/qq_33166080/article/details/68928563 如果你已经有一定的编程经验,那么学习一门新语言最快的方式就是拿着一个比较中型的项目, ...

  3. H3C V.35接口线缆

  4. 图表echarts折线图,柱状图,饼状图

    总体就是有折线图相关图标的设置,x,y轴的设置,x,y轴或者数据加上单位的设置.饼状图如何默认显示几个数据中的某个数据 折线图:legend(小标题)中间默认是圆圈 改变成直线 在legend设置的时 ...

  5. git pull 和git fetch区别?

    git:从远程分支获取最新的版本至本地有两个命令. git fetch 相当于从远程获取最新的版本至本地,但不会自动merge git pull 相当于从远程获取最新的版本并merge至本地

  6. [转]C#操作Memcached帮助类

    在VS中安装Memcached,直接在NuGet下搜索Memcached,选择第一个进行安装: 服务端资源下载地址:https://pan.baidu.com/s/1gf3tupl 接下来开始写程序, ...

  7. redis cluster和hash slot

    redis cluster介绍 从redis3.0.0开始,官方支持了redis cluster的集群模式,结束了redis没有集群的时代. redis cluster 支撑 N 个 redis ma ...

  8. Filter、Intercepter、AOP的区别

    在使用Spring MVC开发RESTful API的时候,我们经常会使用Java的拦截机制来处理请求,Filter是Java本身自带拦过滤器,Interceptor则是Spring自带的拦截器,而A ...

  9. linux ioctl 接口

    大部分驱动需要 -- 除了读写设备的能力 -- 通过设备驱动进行各种硬件控制的能力. 大 部分设备可进行超出简单的数据传输之外的操作; 用户空间必须常常能够请求, 例如, 设 备锁上它的门, 弹出它的 ...

  10. 关于electron中入口文件main.js一些重要参数(持续更新maybe)

    const {app, BrowserWindow} = require('electron') const path = require('path') let mainWindow functio ...