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. Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能

    不可否认,微信.QQ列表的滑动删除.编辑功能着实很经典(从IOS那边模仿过来的),然.Android这边,对列表的操作,其实大多还停留上下文菜单来实现. Android如何实现list item的滑动 ...

  2. @codechef - SERSUM@ Series Sum

    目录 @description@ @solution@ @part - 1@ @part - 2@ @part - 3@ @accepted code@ @details@ @description@ ...

  3. Redis正确使用的十个技巧

    http://www.jb51.net/article/73376.htm Redis 在当前的技术社区里是非常热门的.从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redi ...

  4. Roslyn 静态分析

    本文告诉大家如何使用 Roslyn 分析代码 首先创建一个项目,项目使用.net Framework 4.6.2 ,控制台项目.然后需要安装一些需要的库 Nuget 安装 打开 Nuget 安装下面两 ...

  5. Spring Security 5中 PasswordEncoder的使用

    在最新的 Spring Security 5发布版本中, 出于安全性的考虑调整了PasswordEncoder的实现与使用策略. 1.以前常用的实现 StandardPasswordEncoder, ...

  6. H3C 主动方式建立连接过程

  7. 使用Python内置的smtplib包和email包来实现邮件的构造和发送。

    此文章github地址:https://github.com/GhostCNZ/Python_sendEmail Python_sendEmail 使用Python内置的smtplib包和email包 ...

  8. linux 在 1 MB 之下的 ISA 内存

    一个最著名的 I/O 内存区是在个人计算机上的 ISA 范围. 这是在 640 KB(0xA0000)和 1 MB(0x100000)之间的内存范围. 因此, 它正好出现于常规内存 RAM 中间. 这 ...

  9. java打包上传服务器的一些命令

    Maven下package打包成jar包和war包,都在target目录下 其中War包扔在tomcat的webapps目录下.随tomcat启动自行启动 运行jar包命令. nohup java - ...

  10. jdk+tomcat+mysql一键安装脚本

    最近在搞一个web项目部署,每次都要安装jdk.配置环境变量.安装tomcat和mysql.对于非开发人员,还是有点难度的,经常出错,然后就整理了一个自动化的脚本. JDKinstall.bat @e ...