文章目录

  • Python对象类型
    • 对象操作函数
  • 1、数字类型
    • 常用的算术运算符:
    • 数字运算相关的内置函数:
    • math模块中的常用函数:
  • 2、字符串
    • 1.字符编码
    • 2.字符串表示
    • 3.转义字符串
    • 4.字符串变量
    • 5.字符串对象的主要方法
  • 3、列表和元组
    • 1.列表和元组的创建
    • 2.列表和元组的操作
  • 4、字典
    • 1.字典的创建
    • 2.字典的方法
  • 5、序列对象的操作
    • 1.成员关系操作符
    • 2.连接和重复操作符
    • 3.索引和切片操作符
  • 对象使用中需注意的问题:

Python对象类型

Python使用对象模型来存储数据,其中的任何一个数据都是一个对象,对象的类型决定该数据的存储方式。Python有一系列内建的对象类型,开发人员也可以根据需求创建自定义的对象类型。
Python常用的内建对象类型有:数字(Number)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary),称为基本对象类型。

对象操作函数

type(object) 返回对象类型

a='string'
type(a)
<class 'str'>
b=2
type(b)
<class 'int'>

dir(object) 返回对象的属性和方法列表

a=1
dir(a)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']

help(object) 返回对象的帮助信息

id(object) 返回对象的id值,改值在对象生命周期中是唯一的

isinstance(object,classinfo) 如果对象是classinfo中的一个事例,则返回true,否则,返回false

a = 1
b = 2
c = isinstance(a, (int, ))
>>> true

注:Python程序中的变量不需要实现定义类型,它根据变量赋值的对象确定类型。变量赋值后,就具有相应类的属性和方法,在变量后面加点号(.)可以访问相应类的属性和方法。

1、数字类型

整型(int)、长整型(long)、浮点型(float)、复数型(complex)

其中,int、long、float与C语言中的表示规则相近,长整型后加l或L结尾,0x表示16进制,0o表示八进制,但浮点数相当于C语言中的双精度型,复数由“实部+虚部”组成,以一个j或J结束。

常用的算术运算符:

数字运算相关的内置函数:

math模块中的常用函数:

2、字符串

字符串是有序的字符集合,用于存储、表示基于文本的信息。

1.字符编码

encode 对字符串进行编码
decode 对字符串进行解码

a = '中'
a.encode(encoding='utf-8')
a.decode(encoding='utf-8')

在编码和解码的过程中,可以定义编码或解码采用的codec(编码解释器,类似查找表)。Python内置了很多codec,例如:ascii(英文字符编码)、gbk(简体汉字编码)、big5(繁体汉字编码)、utf_8(通用字符编码)

2.字符串表示

三种表示方式:
单引号
双引号
三引号
其中,三引号方式表示的字符串可以跨行。

3.转义字符串

4.字符串变量

Python利用%操作符来声明变量插入到的地方,%操作符后接一个类型转换符,定义插入变量的类型,例如:%s表示字符串,%d表示整数,%f表示浮点数等。字符串后面再加一个%操作符,后接对应变量值。
如:

print('The area of %s is %f sq km.' % ('shanghai', 6340))
输出结果为:The area of shanghai is 6340.000000 sq km.

%操作符和转换符之间可以定义长度及小数位,例如8.2表示长度为8,小数点后面2位。数字前加“-”,表示做对齐,不加则表示右对齐。
如:

print('The area of %s is %-8.2f sq km.' % ('shanghai', 6340))
输出结果为:The area of shanghai is 6340.00  sq km.

此外Python3.6后,新增格式化字符串,格式化字符串以“f”或“F”为前缀。
如:

city = "shanghai"
area = 6340
print(f'The area of {city} is {area} sq km.')
输出结果为:The area of shanghai is 6340 sq km.

5.字符串对象的主要方法

3、列表和元组

两者都是用于存储不同类型数据的容器,可以包含数字、字符串、列表等基本类型元素,也可以包含其他对象,如栅格数据。
列表和元组形式上的区别是列表用一对方括号表示,元组用一对圆括号表示。列表和元组功能上的区别在于列表是可变的,而元组是不可变的。

1.列表和元组的创建

列表创建方式:

# list_name = [element1, element2, element3, ...]
# 例:
L = ['abc', ['def', 'ghi']]

元组创建方式:

# tuple_name = (element1, element2, element3, ...)
#例:
T = (1, 'abc', ('def',))

注意:如果元组只有一个元素,该元素后面必须加逗号,如(1,),否则返回的只是元素的值而不是元组。

2.列表和元组的操作

列表和元组同字符串一样,具有序列类型数据的一些共性操作。
此外,因为列表是可变的序列类型,因此可以通过操作改变列表的值。
以下为改变列表值的主要操作:

s = ["a", "b", "c", "d", "e"]  # 定义一个列表
s[1] = "x"  # 将列表中索引为1的原始替换成x
s[0:2] = ["x", "y"]  # 将列表中索引号从0到1(2-1)的元素用列表["x", "y"]代替
s[0:6:2] = ["x", "y", "z"]  # 将列表中索引号从0到5(6-1)、步长为2 的元素用["x", "y", "z"]代替
del s[0:5:2]  # 删除列表中索引号0到4、步长为2的元素
s.append(["f"])  # 追加新元素
s.extend(["e", "f"])  # 连接一个新的列表
s.insert(1,"z")  # 在索引号为1的位置插入一个元素"z"
s.pop(1)  # 去除索引号为1的元素
s.remove("d")  # 去除值为"b"的元素s = [3, 1, 4, 2]  # 定义一个列表
s.sort(key=None, reverse=True)  # ker定义元素的转换函数(提取比较键),reverse表示是否从大到小进行排序

4、字典

字典中的所有元素包含在一个花括号内,每个元素是一个键-值对,键和值之间用冒号连接。在字典中键是唯一的,且是不可变的类型,如数字、字符串或元组,与之相关联的值则没有限制,可以是数字、字符串、元组、列表、字典或其他python对象。

1.字典的创建

# d_name = {key1:value1,key2:value2,...}
# 例:
d = {1:123,2:"abcd","c":[123,456]}
d[2] = "ABC"  # 若键2存在则修改其对应的值,若不存在则添加一条新的映射

2.字典的方法

字典的主要方法如下:

# d_name = {key1:value1,key2:value2,...}
# 例:
s = {1: 1234}
d = {1: 123, 2: "abcd", "c": [123, 456]}
d.clear()  # 清空字典内容,返回None
a = d.copy()  # 复制字典d,并创建新的字典对象a
d.get(1)  # 返回键1所关联的值,若键1不存在则返回None
d.pop(1)  # 删除键1对应的元素,若键1不存在则抛出KeyError异常
d.keys()  # 返回字典所有键
d.values()  # 返回字典所有值
d.items()  # 返回字典的所有键和值
d.update(s)  # 用另一个字典的内容对当前字典进行更新

5、序列对象的操作

序列对象(字符串、列表、元组)是元素的有序集合。Python中提供一些序列操作符包括成员关系操作符、连接和重复操作符、索引和切片操作符。

1.成员关系操作符

成员关系操作符包括in和not in,用来判断一个元素是否包含在一个序列中。
常见的操作如下:

#  语法:element [not] in sequence
s = 'a' in 'abc'  # s的返回值为true
p = "b" in ["abc", "def"]  # p的返回值为False
v = 1 in {1: "abc", 2: "def"}  # 判断一个元素是否是字典的一个键,v返回值为True
["a", "b", "c", "c"].count("b")  # 统计序列中元素值为"b"的个数

2.连接和重复操作符

相关操作如下:

# 连接操作符语法:sequence1 + sequence2
a = "Hello"+" "+"world"  # a的返回值为Hello world
# 重复操作符语法:sequence1 * copies_int
b = "a" * 3  # b的返回值为aaa

3.索引和切片操作符

索引操作符相关用法说明如下:

# 索引操作符用于返回序列中的一个元素,语法:sequence[index]
c = "ABCDEFG"  # 定义一个字符串变量作为操作实例
q = c[2]  # (正索引值从左到右,最左位置对应的索引值为0)索引为2对应字符"C",q的值为C
t = c[-2]  # (负索引值从右到左,最右位置对应的索引值为-1)索引为-2对应的字符为"F",t的值为F
w = c.index("B")  # 序列的index(value)方法用于返回序列中元素值为value的元素索引号,w的值为1

切片操作符用法说明如下:

# 切片操作符用于返回序列中的多个元素,语法:sequence[starting_index:ending_index:step]
# 操作后得到的是从起始索引(默认0)到结束索引(默认n-1)之间的、步长为step(默认1)
a = "Hello World"
a0 = a[0:6:2]  # 返回值为Hlo
a1 = a[:5]  # 返回值为Hello
a2 = a[6:]  # 返回值为World
a3 = a[0:4]  # 返回值为Hell
a4 = a[::2]  # 返回值为HloWrd
a5 = a[::]  # 返回值为Hello World

对象使用中需注意的问题:

复制语句是复制对象的引用,而不是产生新的对象,也称浅复制。如创建一个变量并赋值给a,变量a又赋给变量b,变量a和变量b对应的是同一个对象(两个变量的id一致)。

a = [1, 2, 3, 4]
b = a
b[0] = 5
print(a)  # 返回值为[5, 2, 3, 4]

在这种多个变量引用同一个对象的情况下,改变一个变量的值会同时改变其他变量的值。因此,如果希望变量的值保持不变,应该使用不变对象(如使用元组而不是列表),这样可以使某些操作更加安全。
对可变对象,如要产生对象的备份,可使用copy方法进行深复制,深复制产生新的对象。

a = [1, 2, 3, 4]
b = a.copy()
b[0] = 5
print(a)  # 返回值为[1, 2, 3, 4]

本文图片大都源于网络,内容参考科学出版社《地理数据处理与分析》一书

Python对象类型及相关操作相关推荐

  1. python映射类型-python映射类型的相关介绍

    映射类型是一类可迭代的键-值数据项的组合,提供了存取数据项及其键和值的方法,在python3中,支持两种无序的映射类型:内置的dict和标准库中的collections.defaultdict类型. ...

  2. Python对象类型

    Python对象类型 Python进阶(二)--Python对象类型 上一章中我们主要讲了Python的安装与Python基本命令行,IDLE的应用.本章中我们将讲述Python的对象类型,包括数字. ...

  3. Json概述以及python对json的相关操作(至尊宝错过了紫霞仙子,难道你也要错过python对json的相关操作吗?)

    Json概述以及Python对json的相关操作: 什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  4. python 对象类型有哪些?

    python 强大的内置类型让我接触到python的时候开始慢慢的喜欢上它了,感觉既方便又好用,下面我们先一起学习下内置对象类型的好处: 1内置对象能够使得我们编写程序更容易. 2内置的对象效率更高, ...

  5. python对文件的相关操作

    python对文件的相关操作 保存图片 打开文件夹 选择文件打开 后续 保存图片 import cv2 cv2.imwrite('D:\\1.png', img_s) # img是你要保存的图片 打开 ...

  6. python 计时_Python计时相关操作详解【time,datetime】

    本文实例讲述了Python计时相关操作.分享给大家供大家参考,具体如下: 内容目录: 1. 时间戳 2. 当前时间 3. 时间差 4. python中时间日期格式化符号 5. 例子 一.时间戳 时间戳 ...

  7. python对象类型及其运算 数字 字符串 list dict tupe dict

    python内置对象的类型及其所支持的运算 我们在编程时为什么要使用内置对象类型,以及我们在编程时尽可能使用自定义类型呢还是但凡有可能都去使用内置类型.很显然,对于python而言,内置类型更容易理解 ...

  8. 第4章 介绍Python对象类型

    看前须知 这里对本书中提到的不常见的内容进行了查证,举例,所以大家可以不用再费神去搜索相关内容 在Python中,我们运用"材料"来处理"事务". 材料:操作对 ...

  9. Python对象类型——字符串、列表、元组

    字符串 Python连接多个字符串可用"+"号,但这个操作不如把所有子字符串放到一个列表或可迭代对象中,然后调用一个join方法来把所有内容连接在一起节约内存. 原始字符串操作符( ...

最新文章

  1. 亲 , Zookeeper了解一下 : 概述
  2. 专注文本处理,达观数据完成B轮融资,累计融资超2亿元
  3. 云服务器 小学生_日本小学生羡慕中国学生“钉”选之子,马云实现了他们的愿望...
  4. sql语句的学习(2)
  5. 【pmcaff专栏】吴波:浅谈O2O行业的猎人与农夫
  6. 利用btrace在线监控java程序状态
  7. 幼儿园教师计算机教学计划,幼儿园教师教学计划
  8. 2018蓝桥杯省赛---java---C---7(缩位求和)
  9. 《财富》2020中国40岁以下商界精英榜出炉:张一鸣位列榜首
  10. (三)在Azure上创建您的第一个Kubernetes集群
  11. JMeter二次开发(1)-eclipse环境配置及源码编译
  12. PaddlePaddle飞桨OCR文本检测——识别模型训练(三)
  13. 线性代数笔记 -- A = LU的应用
  14. LinQ To XML——用LinQ查询XML
  15. [Liferay6.2]Liferay Dynamic Query API示例
  16. python爬微信公众号教程_python爬搜狗微信获取指定微信公众号的文章
  17. 计算机视觉书籍资源推荐_Computer Vision Principles, Algorithms, Applications, Learning
  18. 如何防止亚马逊账号被关联?
  19. legacy引导gpt分区_支持win10的传统legacy启动无损转换为UEFI GPT启动
  20. 【C语言】数组知识点总结

热门文章

  1. C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历)
  2. Python运维开发(CMDB资产管理系统)--环境部署(上)
  3. 同款蓝牙耳机为什么会串联_蓝牙耳机凭什么成网红明星标配时尚单品?揭秘三大原因...
  4. Ubuntu 修改默认 Python版本
  5. 数据库入门-----SQL语言概述
  6. linux上如何写脚本运行?
  7. Citrix XenCenter 基本命令
  8. 逆向工程MBG(MyBatis Generator)
  9. python爬虫网页超链接_Python爬虫获取网页上的链接
  10. SocketTools 11在所有HTTP客户端组件支持