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.数据类型 数字 字符串 列表 元组 字 ...
随机推荐
- laravel5.6 发送邮件附带邮件时,Unable to open file for reading,报错文件路径问题
https://stackoverflow.com/questions/48568739/unable-to-open-file-for-reading-swift-ioexception-in-la ...
- 2018-2-13-win10-uwp-获得Slider拖动结束的值
title author date CreateTime categories win10 uwp 获得Slider拖动结束的值 lindexi 2018-2-13 17:23:3 +0800 201 ...
- python新知识
# 强制字符串转化 repr(1.1 + 2.2) # 字符串换行 a = "hello, world. " \ "it's a nice day. " \ & ...
- dotnet 设计规范 · 数组定义
本文告诉大家数组定义需要知道的规范,本文翻译 docs dotnet ✓ 建议在公开的 API 使用集合而不是数组.集合可以提供更多的信息. X 不建议设置数组类型的字段为只读.虽然用户不能修改字段, ...
- Xshell + SVN使用
切换目录 cd+想跳转到的目录下 文件浏览 ls ll (ll 信息全) svn更新 svn up 编辑 vi vi的命令 文件保存与退出: :q 在文件未作任何修改的情况下退出. :q! 强制退出, ...
- git 回滚到某个版本
首先使用git log 显示最近的代码提交记录 commit后面的内容,就是回滚的记录名 增加了加载条显示,提高用户体验 commit 47f45668e72e4deeccae85e9767c250d ...
- P1090 后缀表达式
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3(5–2)+7对应的 ...
- 如何在centos 7.4 上安装 python 3.6
yum -y install https://centos7.iuscommunity.org/ius-release.rpmyum -y install python36uyum -y instal ...
- H3C调试信息输出的例子
- linux 处理器特定的寄存器
如果你需要测量非常短时间间隔, 或者你需要非常高精度, 你可以借助平台依赖的资源, 一个要精度不要移植性的选择. 在现代处理器中, 对于经验性能数字的迫切需求被大部分 CPU 设计中内在的指令定时不 ...