python-07.各种对象各种类

基本数据类型详解

一、str 字符串

1、capitalize 字符串首字母大写

  自身不变,会生成一个新的值

1 name = ‘zhangsan‘
2 new_name = name.capitalize()
3 print(name)
4 print(new_name)
5
6 输出内容:
7 zhangsan
8 Zhangsan

2、casefold 将所有大写变小写,casefold可以使任何语言的大写变小写

1 name = ‘SunChenGuang‘
2 new_name = name.casefold()
3 print(name)
4 print(new_name)
5
6 输出内容:
7 SunChenGuang
8 sunchenguang

3、lower 将所有大写变小写,lower只可以改变英文

1 name = ‘SunChenGuang‘
2 new_name = name.lower()
3 print(name)
4 print(new_name)
5
6 输出内容:
7 SunChenGuang
8 sunchenguang

4、center  文本居中

# 参数1: 表示总长度
# 参数2:空白处填充的字符(长度为1)

1 name = ‘SunChenGuang‘
2 new_name = name.center(20,‘#‘)
3 print(name)
4 print(new_name)
5
6 输出内容:
7 SunChenGuang
8 ####SunChenGuang#####     

5、count 统计传入值在字符串中出现的次数

# 参数1: 要查找的值(子序列)
# 参数2: 起始位置(索引)
# 参数3: 结束位置(索引)

 1 neme = ‘SunChenGuang‘
 2 v1 = neme.count(‘g‘)
 3 v2 = neme.count(‘g‘,0,6)
 4 v3 = neme.count(‘g‘,3,9)
 5 print(neme)
 6 print(v1)
 7 print(v2)
 8 print(v3)
 9
10 输出内容:
11 SunChenGuang
12 3
13 1
14 2

6、endswith 是否以xx结尾,返回值是True或False

1 name = ‘sunchegnuang‘
2 new_name = name.endswith(‘ong‘)
3 print(name)
4 print(new_name)
5
6 输出内容:
7 sunchenguang
8 True

7、startswith 是否以xx开头,返回值是True或False

1 name = ‘sunchenguang‘
2 new_name = name.startswith(‘gu‘)
3 print(name)
4 print(new_name)
5
6 输出内容:
7 sunchenguang
8 True

8、expandtabs 找到制表符\t,进行替换(包含前面的值)

# 参数默认是8

 1 name = ‘sun\tchen\tguang\nsun\tchen\tlguang‘
 2 new_name = name.expandtabs(10)
 3 print(name)
 4 print(new_name)
 5
 6 输出内容:
 7 sun    chen    guang
 8 sun    chen    guang
 9 sun       chen      guang
10 sun       chen      guang

9、 找到指定子序列的索引位置

  find:存在返回索引位置,不存在返回  -1

  index:存在返回索引位置,不存在 报错

1 name = ‘sunchegnaung‘
2 v1 = name.find(‘c‘)
3 v2 = name.index(‘s‘)
4 v3 = name.find(‘x‘)
5 # v4 = name.index(‘x‘)
6 print(v1,v2,v3)
7
8 输出内容:
9 3 3 -1

10、字符串格式化

  % :根据百分号

1 v1 = ‘姓名:%s;年龄:%s;性别:%s‘
2 new_v1 = v1%(‘孙晨光‘,20,‘男‘)
3 print(new_v1)
4
5 输出内容:
6 姓名:孙晨光;年龄:20;性别:男

  format :根据下标

1 v2 = ‘姓名:{0};年龄:{1};性别:{2}‘
2 new_v2 = v2.format(‘孙晨光‘,20,‘男‘)
3 print(new_v2)
4
5 输出内容:
6 姓名:孙晨光;年龄:20;性别:男

  format_map :根据键值对

1 v3 = ‘姓名:{name};年龄:{age};性别:{gender}‘
2 new_v3 = v3.format_map({‘name‘:‘张三‘,‘age‘:20,‘gender‘:‘男‘})
3 print(new_v3)
4
5 输出内容:
6 姓名:张三;年龄:20;性别:男

11、isalnum 判断是否是数字、字母、汉字

# 数字、字母、汉字  True

# 特殊符号 False

1 name1 = ‘水电费12‘
2 name2 = ‘水电费12‘
3 v1 = name1.isalnum()
4 v2 = name2.isalnum()
5 print(v1,v2)
6
7 输出内容:
8 True False

12、判断是否是数字

isdecimal  # ‘123‘

isdigit   # ‘123‘,‘②‘

isnumeric   # ‘123‘,‘二‘,‘②‘

 1 num1 = "123"
 2 num2 = "②"
 3 num3 = "二"
 4 v1 = num1.isdecimal()    # ‘123‘
 5 v2 = num2.isdigit()      # ‘123‘,‘②‘
 6 v3 = num3.isnumeric()    # ‘123‘,‘二‘,‘②‘
 7 print(v1,v2,v3)
 8
 9 输出内容:
10 True True True    

13、isidentifier 判断变量名是否合法

1 name1 = ‘guoshaolong1‘
2 name2 = ‘1guoshaolong‘
3 v1 = name1.isidentifier()
4 v2 = name2.isidentifier()
5 print(v1,v2)
6
7 输出内容:
8 True False

14、islower 判断是否全部是小写

1 name1 = ‘zhangsan‘
2 name2 = ‘Zhangsan‘
3 v1 = name1.islower()    #判断是否全部是小写
4 v2 = name2.islower()    #判断是否全部是小写
5 print(v1,v2)
6
7 输出内容:
8 True False

  isupper 判断是否全部是大写

1 name3 = ‘ZHANGSAN‘
2 name4 = ‘zhangSAn‘
3 v3 = name3.isupper()    #判断是否全部是大写
4 v4 = name4.isupper()    #判断是否全部是大写
5 print(v3,v4)
6
7 输出内容:
8 True False

15、upper 全部变大写

1 name = ‘sunchenguang‘
2 new_name = name.upper()
3 print(name)
4 print(new_name)
5
6 输出内容:
7 sunchenguang
8 ZHANGSAN

   lower 全部变小写

1 name = ‘ZHANGSAN‘
2 new_name = name.lower()
3 print(name)
4 print(new_name)
5
6 输出内容:
7 ZHANGSAN
8 zhangsan

16、isprintable 是否包含隐含的\n \t

#不包含返回True ,包含返回False

1 name1 = ‘zhangsan‘
2 name2 = ‘zhang\nsan‘
3 v1 = name1.isprintable()
4 v2 = name2.isprintable()
5 print(v1,v2)
6
7 输出内容:
8 True False

17、isspace 是否全部是空格

1 name = ‘  ‘
2 v = name.isspace()
3 print(v)
4
5 输出内容:
6 True

18、元素拼接(元素字符串) 重要程度五颗星*****

 1 name = ‘zhangsan‘
 2 v1 = "_".join(name)
 3 print(v1)
 4
 5 name_list = [‘张三‘,‘李四‘,‘王五‘]
 6 v2 = "*".join(name_list)
 7 print(v2)
 8
 9 输出内容:
10 z_h_a_n_g_s_a_n
11 张三*李四*王五

19、左右填充

  center  文本居中(详见第4个)

  rjust  右填充

  ljust  左填充

1 name = ‘zhangsan‘
2 v1 = name.rjust(20 ,"*")    #右填充
3 v2 = name.ljust(20 ,"*")    #左填充
4 print(v1)
5 print(v2)
6
7 输出内容:
8 *********zhangsan
9 zhangsan*********

20、对应关系 + 翻译

1 m = str.maketrans(‘aeiou‘,‘12345‘)
2 name = ‘abcdefghijklmnopqrstuvwxyz‘
3 v = name.translate(m)
4 print(v)
5
6 输出内容:
7 1bcd2fgh3jklmn4pqrst5vwxyz

21、partition 分割,保留分割的元素

1 name = ‘zhang.san.si‘2 v = name.partition(‘.‘)
3 print(v)
4
5 输出内容:
6 (‘zhang‘, ‘.‘, ‘san.si‘)

22、replace 替换

1 name = ‘zhang.san.si‘
2 v1 = name.replace(‘.‘,‘*‘)
3 v2 = name.replace(‘.‘,‘*‘,1)
4 print(v1)
5 print(v2)
6
7 输出内容 :
8 zhang*san*si
9 zhang*san.si

23、strip 移除空白,\n,\t

1 name = ‘  zhangsan\t‘
2 v = name.strip()
3 print(name)
4 print(v)
5
6 输出内容:
7   zhangsan
8 zhangsan

24、swapcase 大小写转换

1 name = ‘ZhangSan‘
2 v = name.swapcase()
3 print(name)
4 print(v)
5
6 输出内容:
7 ZhangSan
8 zHANGsAN

25、zfill 往前面填充0

1 name = ‘zhangsan‘
2 v = name.zfill(20)
3 print(v)
4
5 输出内容:
6 000000000zhangsan

26、encode 转换成字节

1 name = ‘张三‘
2 v1 = name.encode(encoding=‘utf-8‘)
3 v2 = name.encode(encoding=‘gbk‘)
4 print(v1)
5 print(v2)
6
7 输出内容:
8 b‘\xe9\x83\xad\xe5\xb0\x91\xe9\xbe\x99‘
9 b‘\xb9\xf9\xc9\xd9\xc1\xfa‘

二、int 整数

1、bit_length 当前整数的二进制表示,最少位数

 1 age1 = 1
 2 age2 = 10
 3 age3 = 100
 4 print(age1.bit_length())
 5 print(age2.bit_length())
 6 print(age3.bit_length())
 7
 8 输出内容:
 9 1
10 4
11 7

2、to_bytes 获取当前数据的字节表示

1 age = 20
2 v1 = age.to_bytes(10,byteorder=‘big‘)
3 v2 = age.to_bytes(10,byteorder=‘little‘)
4 print(v1)
5 print(v2)
6
7 输出内容:
8 b‘\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14‘
9 b‘\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00‘

三、bool 布尔值

1、只有True或False

 1 v1 = 0
 2 v2 = 1
 3 v3 = -1
 4 v4 = ‘‘
 5 v5 = []
 6 print(bool(v1))
 7 print(bool(v2))
 8 print(bool(v3))
 9 print(bool(v4))
10 print(bool(v5))
11
12 输出内容:
13 False
14 True
15 True
16 False
17 False

四、list 列表

1、append 追加

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 user_list.append(‘老五‘)
3 print(user_list)
4
5 输出内容:
6 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘老五‘]

2、clear 清空

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 user_list.clear()
3 print(user_list)
4
5 输出内容:
6 []

3、copy 拷贝(浅拷贝)

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 v = user_list.copy()
3 print(user_list)
4 print(v)
5
6 输出内容:
7 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘]
8 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘]

4、count 计数

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘,‘老三‘]
2 v = user_list.count(‘老三‘)
3 print(user_list)
4 print(v)
5
6 输出内容:
7 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘老三‘]
8 2

5、extend 扩展原列表

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 user_list.extend([‘郭少龙‘,‘少龙‘])
3 print(user_list)
4
5 输出内容:
6 [‘老大‘, ‘老二‘, ‘老三‘, ‘老四‘, ‘郭少龙‘, ‘少龙‘]

6、index 查找元素索引,不存在则报错

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 v = user_list.index(‘老大‘)
3 print(v)
4
5 输出内容:
6 0

7、pop 删除并且获取元素 - 根据索引删除

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 v = user_list.pop(1)
3 print(v)
4 print(user_list)
5
6 输出内容:
7 老二
8 [‘老大‘, ‘老三‘, ‘老四‘]

8、remove 删除 - 根据值删除

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 user_list.remove(‘老二‘)
3 print(user_list)
4
5 输出内容:
6 [‘老大‘, ‘老三‘, ‘老四‘]

9、reverse 翻转

1 user_list = [‘老大‘,‘老二‘,‘老三‘,‘老四‘]
2 user_list.reverse()
3 print(user_list)
4
5 输出内容:
6 [‘老四‘, ‘老三‘, ‘老二‘, ‘老大‘]

10、sort  排序

 1 正序:
 2 nums = [5,4,3,2,6,10,7]
 3 nums.sort()
 4 print(nums)
 5
 6 输出内容:
 7 [2, 3, 4, 5, 6, 7, 10]
 8
 9
10 倒序:
11 nums = [5,4,3,2,6,10,7]
12 nums.sort(reverse=True)
13 print(nums)
14
15 输出内容:
16 [10, 7, 6, 5, 4, 3, 2]

11、补充内容:range 

  1、输出1-10

 1 for i in range(1,11):
 2     print(i)
 3
 4 输出内容:
 5 1
 6 2
 7 3
 8 4
 9 5
10 6
11 7
12 8
13 9
14 10

  2、输出1-10 奇数

1 for i in range(1,11,2):
2     print(i)
3
4 输出内容:
5 1
6 3
7 5
8 7
9 9

  3、倒序输出10-1

 1 for i in range(10,0,-1):
 2     print(i)
 3
 4 输出内容:
 5 10
 6 9
 7 8
 8 7
 9 6
10 5
11 4
12 3
13 2
14 1

  4、输出列表内容+序号

1 name = [‘张三‘,‘李四‘,‘王五‘]
2 for i in range(0,len(name)):
3     print(i+1,name[i])
4
5 输出内容:
6 1 张三
7 2 李四
8 3 王五

12、补充内容:enumerate 额外生成一列有序的数字

1 name = [‘张三‘,‘李四‘,‘王五‘]
2 for i,ele in enumerate(name,1):
3     print(i,ele)
4
5 输出内容:
6 1 张三
7 2 李四
8 3 王五

五、tuple:元组(不可被修改的列表;不可变类型)

# 元组如果只有一个值,需要在最后加逗号

1、count 获取个数

1 user_tuple = (‘张三‘,‘李四‘,‘王五‘,‘张三‘,)
2 v = user_tuple.count(‘张三‘)
3 print(v)
4
5 输出内容:
6 2

2、index 获取值的第一个索引位置

1 user_tuple = (‘张三‘,‘李四‘,‘王五‘,‘张三‘,)
2 v = user_tuple.index(‘张三‘)
3 print(v)
4
5 输出内容:
6 0

六、dict:字典

1、clear 清空

1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}
2 dic.clear()
3 print(dic)
4
5 输出内容:
6 {}

2、copy 浅拷贝

1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}
2 v = dic.copy()
3 print(dic)
4 print(v)
5
6 输出内容:
7 {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
8 {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}

3、get 根据key获取指定的value;不存在不报错

1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}
2 v1 = dic.get(‘k111‘,‘111‘)
3 print(v1)
4
5 输出内容:
6 111

4、pop 删除并获取对应的value值

1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}
2 v1 = dic.pop(‘k1‘)
3 print(v1)
4
5 输出内容:
6 v1

5、popitem 随机删除键值对,并获取到删除的键值

1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}
2 v = dic.popitem()
3 print(v)
4 print(dic)
5
6 输出内容:
7 (‘k2‘, ‘v2‘)
8 {‘k1‘: ‘v1‘}

6、setdefault 增加,如果存在则不做操作

1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}
2 dic.setdefault(‘k3‘,‘v3‘)
3 print(dic)
4
5 输出内容:
6 {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘v3‘}

7、update 批量增加或修改

1 dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}
2 dic.update({‘k3‘:‘v3‘,‘k1‘:‘v33333‘})
3 print(dic)
4
5 输出内容:
6 {‘k2‘: ‘v2‘, ‘k1‘: ‘v33333‘, ‘k3‘: ‘v3‘}

七、set,集合(不可重复的列表;可变类型)

1、s1中存在,s2中不存在

 1 s1 = {"a",‘b‘,‘c‘,‘d‘,‘e‘}
 2 s2 = {"a",‘b‘,‘c‘,‘d‘}
 3 v = s1.difference(s2)
 4 print(v)
 5 #### s1中存在,s2中不存在,然后对s1清空,然后在重新复制
 6 s1.difference_update(s2)
 7 print(s1)
 8
 9 输出内容:
10 {‘e‘}
11 {‘e‘}

2、s2中存在,s1中不存在

1 s1 = {"a",‘b‘,‘d‘,‘e‘}
2 s2 = {"a",‘b‘,‘c‘,‘d‘}
3 v = s2.difference(s1)
4 print(v)
5
6 输出内容:
7 {‘c‘}
时间: 2024-10-11 22:04:35

python-07.各种对象各种类的相关文章

Python 类型和对象(转)

译文:http://wiki.woodpecker.org.cn/moin/PyTypesAndObjects 原文:http://www.cafepy.com/article/python_attributes_and_methods/ 解释新式的Python对象(new-style): <type 'type'> and <type 'object'>是什么东西 用户定义的类及实例是如何相互关联的,和内置类型有啥关系how user defined classes and in

使用C语言为python编写动态模块(2)--解析python中的对象如何在C语言中传递并返回

楔子 编写扩展模块,需要有python源码层面的知识,我们之前介绍了python中的对象.但是对于编写扩展模块来讲还远远不够,因为里面还需要有python中模块的知识,比如:如何创建一个模块.如何初始化python环境等等.因此我们还需要了解一些前奏的知识,如果你的python基础比较好的话,那么我相信你一定能看懂,当然我们一开始只是介绍一个大概,至于细节方面我们会在真正编写扩展模块的时候会说. 关于使用C为python编写扩展模块,我前面还有一篇博客,强烈建议先去看那篇博客,对你了解Pytho

python之文件对象

防伪码忘情公子著 文件对象是用来访问文件系统接口所对应的数据的 文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构-即在磁盘上组织文件的方法 计算机文件或称文件.电脑档案.档案是存储在某种长期储存设备或临时存储设备中的一段数据流并且归属于计算机文件系统管理之下 概括来讲 文件是计算机中由OS管理的具有名字的存储区域 在Linux系统上文件被看做是字节序列 要想把数据存储到文件中有一个前提那就是必须序列化非序列化的数据是不能简单的存储在文件系统中的文件中的 对于python来说文件对象不仅可

Python的基础--对象 转

对象(Objects)是python中数据的抽象,python中所有的数据均可以用对象或者是对象之间的关系来表示.每个对象均有标识符(identity).类型(type).值(value). 标识符.对象一旦创建,那么它的标识符就不会改变,可以把标识符看作对象在内存中的地址.is 操作可以用来比较两个对象的标识符,函数id()用来返回对象标识符(python中返回对象在内存中的地址). 类型.对象的类型也是不可变的,对象的类型决定了该对象支持的操作,另外也决定了该对象可能的值.type()函数返

python 引用和对象理解

今天浏览博客的时候看到这么一句话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象分离 更为贴切) 从最开始的变量开始思考: 在python中,如果要使用一个变量,不需要提前进行声明,只需要在用的时候,给这个变量赋值即可 (这个和C语言等静态类型语言不同,和python为动态类型有关). 举第一个栗子: a = 1 这是一个简单的赋值语句,整数 1 为一个对象,a 是一个引用,利

python类与对象基本语法

本文和大家分享的主要是python中类与对象相关内容,一起来看看吧,希望对大家学习python有所帮助. 面向对象编程的2个非常重要的概念:类和对象. 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念--类. 类就相当于制造飞机时的图纸,用它来进行创建的飞机就相当于对象. 定义一个类 class person: age=10 #下面sex没有进行初始化是会报错的 #sex name="intsmaze" def getPe

Python深入03 对象的属性

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribute).Python的属性有一套统一的管理方案. 属性的__dict__系统 对象的属性可能来自于其类定义,叫做类属性(class attribute).类属性可能来自类定义自身,也可能根据类定义继承来的.一个对象的属性还可能是该对象实例定义的,叫做对象属性(object attribute). 对象

Python源代码--整数对象(PyIntObject)的内存池

[背景] 原文链接:http://blog.csdn.net/ordeder/article/details/25343633 Python整数对象是不可变对象,什么意思呢?比如运行例如以下python语句 >>>a = 1023 >>>a = 1024 >>>b = a >>>c = 1024 >>>d = 195 >>>e = 195 python的整数对象结构为: typedef struct

zg手册 之 python2.7.7源码分析(2)-- python 的整数对象和字符串对象

python 中的内置对象 python 中常用的内置对象有:整数对象,字符串对象,列表对象,字典对象.这些对象在python中使用最多,所以在实现上提供缓存机制,以提高运行效率. 整数对象 (PyIntObject) python 中的整数对象是不可变对象(immutable),即创建了一个 python 整数对象之后,不能再改变该对象的值. python 为创建整数对象提供了下面三种方法,其中 PyInt_FromString 和 PyInt_FromUnicode 内部也是调用 PyInt

python基础——函数对象和闭包

关于函数对象和闭包 闭包(closure)是函数式编程的重要的语法结构.不同的语言实现闭包的方式不同.Python以函数对象为基础,为闭包这一语法结构提供支持的 (我们在特殊方法与多范式中,已经多次看到Python使用对象来实现一些特殊的语法).Python一切皆对象,函数这一语法结构也是一个对象.在函数对象中,我们像使用一个普通对象一样使用函数对象,比如更改函数对象的名字,或者将函数对象作为参数进行传递. 一.函数对象: 1.函数可以当参数传递 示例: #把函数当成参数传递 def foo()