python基础-基本数据类型(二)
一、序列类型
序列类型是用来表示有序的元素集合
1、字符串(str)
python中字符串通常用str表示,字符串是使用单引号,双引号,三引号包裹起来的字符的序列,用来表示文本信息。
1.1 字符串的定义
a = '123'
b = "123"
c = '''123'''
print(type(a),type(b),type(c))
<class 'str'> <class 'str'> <class 'str'>
使用单引号或者双引号表示字符串时没有任何区别,当要表示字符串的单引号时用双引号表示,反之亦然。
print('我是"双引号"')
print("我是'单引号'")
单引号,双引号只能创建单行的字符串,想要创建多行数据时需要使用三引号,三引号通常用来表示多行注释等。
定义空字符串
a = "" print(a)
1.2 字符串的索引
任何序列类型中的元素都是使用索引来表示它的位置。
字符串是字符的序列表示,单个字符在字符串中的位置也是使用索引来表示,也叫下标。
可以通过索引来获取字符串中的单个字符,索引用整数表示,从0开始
s = 'hellow,world!'
print(s[1],s[3])
输出结果:e,l
1.3字符串的切片
获取序列中的子列叫做切片,语法如下:
str[start:end:step]
start表示开始索引,end表示结束索引,step代表步长,从字符串索引为start到end之间不包含end,每个step步长取一个值,当step为1时可以省略,step为负数时反向取值
s = '12345678'
print(s[1:5:2])
输出:2,4 #包头不包尾,步长为2
print(s[:5])
输出:12345 #从头开始切不需要start
print(s[2:])
输出:345678 #切到末尾不需要end
print(s[2::-2])
输出:31 #步长为负数,反向
1.4 字符串的拼接
python中可以通过+好拼接两个字符串
s1 = "123"
s2 = "456"
print(s1+s2) 输出:123456
字符串和整数进行乘法运算表示重复拼接这个字符串
print(s1*2) 输出:123123
1.5 字符串常用方法
通过内建函数dir可以查看所有Python内建函数
print(dir(str))
输出:['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
官方文档:https://docs.python.org/3/library/stdtypes.html?utm_source=testingpai.com#string-methods
1.6 字符串和数值的相互转化
字符串和数值之间可以相互转换
字符串转换成整数:int('1') 输出:1
整数转换字符串:str(1) 输出:'1'
字符串转换成浮点数:float('1.1') 输出:1.1
浮点数转换成字符串:str(1.1) 输出:‘1.1’
1.7 转义符
常用的转义字符:
| (在行尾时) | 续行符 |
|---|---|
\\ |
反斜杠符号 |
\' |
单引号 |
\" |
双引号 |
| \a | 响铃 |
| \n | 换行 |
| \t | 横向制表符 |
| \r | 回车 |
| \f | 换页 |
1.8 字符串格式化
python支持两种字符串格式化的方式:
1、%字符串格式化
语法规则如下:
%[(name)][flags][width][.precision]typecode
(name)可选,用于选择指定的keyflags可选,可供选择的值有,注意只有在和数值类型的typecode配合才起作用width,可选字符串输出宽度width 可选输出字符串长度+, 右对齐,正数前加正号,负数前加负号-, 左对齐,正数前无符号,负数前加负号空格, 右对齐,正数前加空格,负数前加负号0, 右对齐,正数前无符号,复数前加负号;用0填充空白处
.precision可选,小数点后保留位数,注意只有在和数值类型的typecode配合才起作用typecode必选s,获取传入对象的字符串形式,并将其格式化到指定位置r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置c,整数:将数字转换成其 unicode 对应的值,10 进制范围为 0 <= i <= 1114111(py27 则只支持 0-255);字符:将字符添加到指定位置o,将整数转换成 八 进制表示,并将其格式化到指定位置x,将整数转换成十六进制表示,并将其格式化到指定位置d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写 e)E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写 E)f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后 6 位)F,同上g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过 6 位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是 e;)`G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过 6 位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是 E;)`- %,当字符串中存在格式化标志时,需要用 %% 表示一个百分号
例子:
res = '%s学校的升学率为%s%%'%('某某',80)
print(res)
某某学校的升学率为80%
res = '%(school)s学校的升学率为%(percent)s%%'%('school':'某某','percent':80)
print(res)
某某学校的升学率为80%
注:%后是字典时,可以通过name指定key的值
res = '%(school)s学校的升学率为%(percent).2f%%'%('school':'某某','percent':80.888)
print(res)
某某学校的升学率为80.89%
注:保留两位小数
2、format字符串格式化
%字符串格式化继承C语言,Python中给字符串对象提供了一个format函数来进行字符串格式化
基本语法:<模板字符串>.format(<逗号分隔的参数>)
在模板字符串中使用{}代替%做为槽位
例:
res = '{}学校的升学率为{}%'.format('某某',80)
print(res)
某某学校的升学率为80%
当format中的参数使用位置参数时,{}中可以填写参数的整数索引让其一一对应
res = '{0}学校的升学率为{1}%'.format('某某',80)
print(res)
某某学校的升学率为80%
当format中的参数使用关键字参数时,{}中可以填写参数的关键字来表示
res = '{school}学校的升学率为{percent}%.format(school='某某',percent=80)
print(res)
某某学校的升学率为80%
{}除了可以写参数索引外,还可以填写控制信息来实现更多的格式化。语法如下:
{<参数序号>:<格式控制标记>}
其中格式控制标记格式如下
[fill][align][sign][#][0][width][,][.precision][type]
fill 【可选】空白处填充的字符
2. align 【可选】对齐方式(需配合 width 使用)
2.1 <,内容左对齐
2.2 >,内容右对齐(默认)
2.3 =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号 + 填充物 + 数字
2.4 ^,内容居中
3.sign 【可选】有无符号数字
3.1 +,正号加正,负号加负;
3.2 -,正号不变,负号加负;
3.3 空格 ,正号空格,负号加负;
4.#【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
5.‘,’ 【可选】为数字添加分隔符,如:1,000,000
6.width 【可选】格式化位所占宽度
7..precision 【可选】小数位保留精度
8.type 【可选】格式化类型
- 传入” 字符串类型 “的参数
- s,格式化字符串类型数据
- 空白,未指定类型,则默认是 None,同 s
- 传入“ 整数类型 ”的参数
- b,将 10 进制整数自动转换成 2 进制表示然后格式化
- c,将 10 进制整数自动转换为其对应的 unicode 字符
- d,十进制整数
- o,将 10 进制整数自动转换成 8 进制表示然后格式化;
- x,将 10 进制整数自动转换成 16 进制表示然后格式化(小写 x)
- X,将 10 进制整数自动转换成 16 进制表示然后格式化(大写 X)
- 传入“ 浮点型或小数类型 ”的参数
- e, 转换为科学计数法(小写 e)表示,然后格式化;
- E, 转换为科学计数法(大写 E)表示,然后格式化;
- f , 转换为浮点型(默认小数点后保留 6 位)表示,然后格式化;
- F, 转换为浮点型(默认小数点后保留 6 位)表示,然后格式化;
- g, 自动在 e 和 f 中切换
- G, 自动在 E 和 F 中切换
- %,显示百分比(默认显示小数点后 6 位)
- 传入” 字符串类型 “的参数
res = '{school}学校的升学率为{percent:.2%}'.format(school='moumou',percent=0.80888)
print(res)
某某学校的升学率为80.89%
注:保留两位小数
3.格式字符串字面值
格式字符串字面值或称为 f-string 是标注了 f或者F前缀的字符串字面值,这种字符串包含可替换的字段即以{}标注的表达式
基本语法是:
literal_char{expression[:format_spec]}
literal_char普通字符expression表达式,变量或函数。。format_spec格式字符串,规则同上面的 format 字符串
直接在f字符串的{}内写上变量名,系统会自动将变量的值以字符串的形式替换
school ="某某"
percent = 80
res = f'{school}学校的升学率为{percent}'
print(res)
某某学校的升学率为80
带格式的f字符串
输出两位数月份:
month = 8
res = f'{month:>02}'
print(res)
08
2、列表
python中列表用于表示任意元素的序列,列表中可以是任意的数据类型,列表中的元素可以增删改。
2.1 列表的定义
列表由一对中括号进行定义,元素与元素之间用逗号隔开。
2.2 列表的拼接
列表可以使用加法运算进行拼接,也可乘整数进行列表的重复
a = [1,2,3]
b = [4,5,6]
print(a+b)
[1,2,3,4,5,6]
a = [1,2]
print(a*2)
[1,2,1,2]
2.3 列表的索引和切片
与序列切片操作一致
2.4 列表的常用操作
2.4.1 修改元素
列表中修改元素,只需要给索引赋值即可
a = [1,2,3]
a[2] = 4
print(a)
[1,2,4]
2.4.2 增加元素
增加元素需要使用列表的方法
.append(el) 在列表的末尾加一个元素
a=[1,2,3]
a.append(4)
print(a)
[1,2,3,4]
.insert(index,el)在列表指定的索引处添加元素
a.insert(1,2)
print(a)
[1,2,2,3]
.extend(iterable)扩展列表,传入的对象为可迭代对象中的元素
a.extend([1,2,3])
print(a)
[1,2,3,1,2,3]
2.4.3 删除元素
.pop(index) 删除指定索引处的元素,并返回该元素,未指定则默认删除最后一个元素
a = [1,2,3]
a.pop()
print(a)
[1,2]
.remove(value)从列表删除第一个指定的值value,如果不存在value则报错
a = [1,2,1,3]
a.remove(1)
print(a)
[2,1,3]
.clear(),清空列表,使列表变成空列表
a = [1,2,3]
a.clear()
print(a)
[]
2.5 列表的其他方法
.copy(),返回一个列表的浅拷贝。
.count(value),统计一个列表中元素的数量
.index(value),返回列表中指定value值得第一个索引,不存在则报错
.reverse(),翻转列表元素顺序
.sort(key=none,reverse=False),对列表进行排序,默认按照从小到大的顺序,当reverse的值为True时,从大到小,排序时列表中元素需类型相同,否则报错。
2.6 字符串和列表的转换
字符串是字符组成的序列,可以使用list函数将字符串转换成单个的字符的列表
a = 'hello world'
ls = list(a)
print(ls) ['h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd']
3、元祖
元祖(tuple)表示任意元素的序列,元素可以是任意数据类型,但是不可以增删改,元祖是不可变列表
3.1 元祖的定义
元祖是用一对小括号进行定义,元祖之间用逗号隔开。
3.2 元祖的索引与切片
与列表一致
3.3 元祖的常用操作
元祖的元素不能增加,删除和修改,其他操作和列表一致。
元祖利用不可修改的特性,常用在多变量赋值和函数多返回值上。
3.4 元祖的常用方法
元组只有两个公有方法count,index用法与列表相同
3.5 len函数
内建函数len可以获取元祖中的元素个数
4、可变与不可变对象
python中的对象根据底层内存机制分为可变与不可变两种
可变对象可以在其id()保持不变的情况下改变其取值
基本数据类型中列表,集合,字典都是可变类型
如果修改了一个对象的值,必须创建新的对象,那这种数据类型就是不可变类型。
基本数据类型中数字,字符串,元祖都是不可变类型。
5、可哈希对象
一个对象的哈希值如果在其生命周期内绝不改变,就被称为可哈希。可哈希对象都可以通过内置函数 hash 进行求值。
它们在需要常量哈希值的地方起着重要的作用,例如作为集合中的元素,字典中的键。
不可变数据类型都是可哈希对象,可变数据类型都是不可哈希对象。
python基础-基本数据类型(二)的更多相关文章
- python基础:数据类型二
一.元组类型 二.字典类型 三.集合 一.元组类型 # 什么是元组: 元组就是一个不可变的列表 # ======================================基本使用======== ...
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
- python基础篇(二)
PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...
- 第二章:python基础,数据类型
"""第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- Python 基础 面向对象之二 三大特性
Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...
- python基础扩展(二)
python基础扩展(二) 常用操作 1.startswith(以什么开始) endswith(y)什么结束 s='taiWanw39dd' print(s.startswith('t')) #意思是 ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- python 基础之数据类型
一.python中的数据类型之列表 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 二.列表常用操作 >切片>追加>插入>修改& ...
- python基础知识(二)
以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍
随机推荐
- Spring 的优点?
(1)spring属于低侵入式设计,代码的污染极低: (2)spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性: (3)Spring提供了AOP技术,支持将一些通用任务,如安全. ...
- 发现程序美----while+for冒泡实现的
思想记录: 每一轮回的冒泡都将产生一个最大值,其后每次循环次数都将少一次,因为每次都会确定一个最大值. private void method(){ int[] list = {10,7,8,4,7, ...
- 在 Java 中,如何跳出当前的多重嵌套循环?
在最外层循环前加一个标记如 A,然后用 break A;可以跳出多重循环.(Java 中 支持带标签的 break 和 continue 语句,作用有点类似于 C 和 C++中的 goto 语 句,但 ...
- SQLyog创建用户并授权的过程
点击你要授权的数据库然后点击用户管理器 然后输入用户名和密码主机选localhost 然后点击创建,然后选择你创建的数据库全选 最后保存就可以了
- Java 中,编写多线程程序的时候你会遵循哪些最佳实践?
这是我在写 Java 并发程序的时候遵循的一些最佳实践: a)给线程命名,这样可以帮助调试. b)最小化同步的范围,而不是将整个方法同步,只对关键部分做同步. c)如果可以,更偏向于使用 volati ...
- .NET面试经典三问:什么是.NET?什么是.NET Framework?什么是.NET Core?
什么是.NET?什么是.NET Framework? 本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要 ...
- 机器学习 machine learn
机器学习 机器学习 概述 什么是机器学习 机器学习是一门能够让编程计算机从数据中学习的计算机科学.一个计算机程序在完成任务T之后,获得经验E,其表现效果为P,如果任务T的性能表现,也就是用以衡量的P, ...
- 7_根轨迹_Part1_“根”的作用
这里的渐近线,应该是e^[**wn]/wd,忘记除wd了
- [译] Facebook:我们是如何构建第一个跨平台的 React Native APP
英文原文(需FQ):https://code.facebook.com/posts/1189117404435352/ 早些时候,我们介绍过iOS版的React Native. React Nativ ...
- canvas绘图API详解
canvas绘图API详解 1.context的状态 矩阵变换属性 当前剪辑区域 context的其他状态属性: strokeStyle, fillStyle, globalAlpha, lineWi ...