Python基础(二):操作基本数据类型
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基础(二):操作基本数据类型的更多相关文章
- redis基础二----操作set数据类型
set集合是无序的,不能存在重复元素 bbb吃重复元素,是不能添加成功的 2 接下来分析zset,是有序的,你在添加的时候要指定元素的序列号 上面的 3 4 5 6 就是指定的元素的序列号 withs ...
- Python 基础 二
Python 基础 二 今天对昨天学习的Python基础知识进行总结,学而不思则惘,思而不学则殆! 一.先对昨天学习的三大循环的使用情况进行总结: 1.while循环的本质就是让计算机在满足某一条件的 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- Python基础(二) —— 字符串、列表、字典等常用操作
一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 二.三元运算 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为 ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- python基础之五大标准数据类型
学习一门语言,往往都是从Hello World开始. 但是笔者认为,在一个黑框框中输出一个"你好,世界"并没有什么了不起,要看透事物的本质,熟悉一门语言,就要了解其底层,就是我们常 ...
- python3 基础二——基本的数据类型三
一.字符串str 1.创建字符串,为变量分配一个值 word='字符串' sentence="字符串\n" #python中单引号和双引号使用完全相同 paragraph=&quo ...
- Java基础(二) 基本类型数据类型、包装类及自动拆装箱
我们知道基本数据类型包括byte, short, int, long, float, double, char, boolean,对应的包装类分别是Byte, Short, Integer, Long ...
- python基础二(基础数据类型)
一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...
随机推荐
- OpenStack组件系列☞glance搭建
第一步:glance关于数据库的操作 mysql -u root -p #登入数据库 CREATE DATABASE glance; #新建库keystone GRANT ALL PRIVILEGES ...
- ELMo解读(论文 + PyTorch源码)
ELMo的概念也是很早就出了,应该是18年初的事情了.但我仍然是后知后觉,居然还是等BERT出来很久之后,才知道有这么个东西.这两天才仔细看了下论文和源码,在这里做一些记录,如果有不详实的地方,欢迎指 ...
- Oracle的dual是什么东西啊
原文:https://zhidao.baidu.com/question/170487574.html?fr=iks&word=dual&ie=gbk Oracle的dual是什么东西 ...
- Python--day67--Jsonresponse响应介绍和路由系统的分组命名匹配方式(简单介绍)
1,Jsonresponse响应介绍: ,2,路由系统的分组命名匹配方式:(简单介绍)
- Python--day62--Django安装,配置,web请求流程,views.py总结
1,安装Django 2,创建Django项目: 3,配置Django项目 1.settinngs.py文件 1.templates文件夹的位置 2.静态文件 1,STATIC_URL ----- ...
- Spring Data JPA查询指定列,并返回实体(改)
现有PostEntiy实力,包含各种属性,如: /** * @Auther: DingShuo * @Date: 2018/7/18 11:09 * @Description: */ @Entity ...
- 安装ssh-batch工具
关于sshbatch sshbatch是用perl写了非常方便操作管理集群的一个工具,项目的源码在GitHub托管. 关于sshbatch以及其详细的使用方法,春哥在GitHub上介绍的非常详细了,详 ...
- mac 安装 adb
安装命令 brew cask install android-platform-tools 测试安装情况 adb devices 设备打开开发者模式 略 查看log并过滤出设备id adb logca ...
- python的for循环、下标和切片
for循环的格式 for 临时变量 in 列表或者字符串: 循环满足条件时执行的代码 else: 循环不满足条件时执行的代码 例: name = "abcdef&qu ...
- Gyn 100989 "1D Cafeteria (B)"(set+lower_bound)
传送门 •题意 某自助餐厅有 n 张桌子,桌子编号为 1~n,其中第 i 张桌子可容纳 ai 个人: 有两种操作: (1)in x : 有 x 个人来这家餐厅吃饭,需要找一个可容纳 x 人的桌子,并满 ...