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. linux 端口映射设置

    iptables -t nat -A PREROUTING -p tcp --dport 新端口 -j REDIRECT --to-ports 旧端口

  2. day6_python之json序列化和反序列化

    json作用:用来保存当前状态 1.使用json.dumps序列化把dic字典存到文件中 dic={'name':'egon','age':18} print(json.dumps(dic)) #得到 ...

  3. Vue6——v-model实现数据双向绑定

    博客地址 :https://www.cnblogs.com/sandraryan/ v-model 用于input标签,用于实现双向绑定,及时把数据的变化渲染在页面 双向绑定及原理 举个双向绑定的简单 ...

  4. 使用react-tooltip实现鼠标悬浮显示框详细记录

    前段时间遇到的一个需求,要求鼠标悬停显示使用描述, 用到了react-tooltip插件,今天写一个总结 先看效果(为了方便参考,用的是原始样式): 文档参考地址: https://www.npmjs ...

  5. maven环境隔离

    pom <build>节点下增加节点 <resources> <resource> <directory> src/main/resources.${d ...

  6. H3C 静态路由实现路由备份和负载分担

  7. mpvue的坑,持续更新-.-

    mpvue... 坑 怎么说呢,去github看一下,发现还是有很多问题没有解决... 不支持filter 亲,到现在还没有支持filter哦.只能用替代方法了,用computed或者渲染前先处理数据 ...

  8. linux预备知识

    我们正在接近去看一些实际的模块代码. 但是首先, 我们需要看一些需要出现在你的模块 源码文件中的东西. 内核是一个独特的环境, 它将它的要求强加于要和它接口的代码上. 大部分内核代码包含了许多数量的头 ...

  9. P1051 八皇后问题

    题目描述 在国际象棋中,皇后是同时具备象和车的攻击范围的,它可以横竖移动,也可以斜着移动.那么在一个8*8的标准国际象棋棋盘中,我们要放入8个皇后,同时皇后之间无法互相攻击,问有多少种皇后的放置方法. ...

  10. Node.js Windows Binary二进制文件安装

    1.下载文件 安装包的下载路径为:https://nodejs.org/en/download/ 选择你需要的版本,这里我选择了 Windows Binary 64-bit 版本. 2.配置npm安装 ...