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. 无旋treap hfq-treap

    怎么代码都这么长... #include<iostream> #include<stdio.h> #include<string.h> #include<al ...

  2. iptables 网址转译 (Network Address Translation,NAT)

    当封包流经NAT電腦時,其位址/通訊端口會被修改,以達到改变包目的地(或旅程),或是让目的地误以为包是源自NAT电脑的效果.換言之,对封包执行NAT的电脑,可以成为新包的来源或目的地,或是成为真正来源 ...

  3. phpstorm鼠标显示问题

    https://segmentfault.com/q/1010000004319802 使用phpstorm,不知道碰到了什么键,鼠标变成了一个字符那么宽的灰色色块,原来是一根很细的竖线,怎么弄?没法 ...

  4. hdu 1548 A strange lift(迪杰斯特拉,邻接表)

    A strange lift Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  5. H3C PPP基本概念

  6. chrome浏览器频繁卡死

    输入chrome:flag 把对应的GPU选项关掉 或者重装 ,从360软件管理器上装

  7. UVa 11134 - Fabled Rooks——[问题分解、贪心法]

    We would like to place n rooks, ≤ n ≤ , on a n × n board subject to the following restrictions • The ...

  8. H3C DHCP系统组成

  9. Git用在公司项目上的操作

    修改代码后再次提交 搭档优化好他自己的代码后,我想在vscode上看看他优化后的结果 此时直接git pull origin就可以看到了 j接下来的一些指令,慢慢了解... 分支本身已经在我上面 以下 ...

  10. linux PCI 寻址

    每个 PCI 外设有一个总线号, 一个设备号, 一个功能号标识. PCI 规范允许单个系统占 用多达 256 个总线, 但是因为 256 个总线对许多大系统是不够的, Linux 现在支持 PCI 域 ...