目录
一、两个重要的函数
1、dir()函数
dir()函数在Python中用于返回一个对象的所有属性和方法的列表,当你对一个函数使用dir()时,它会返回该函数对象的所有可访问属性和方法的名字列表。
具体来说,dir()函数获取的内容包括:
1-1、特殊方法和魔法方法
如 __
call__
、__
code__
、__
defaults__
、__
doc__
、__
globals__
、__
name__
等,这些方法和属性是函数对象的一部分,提供了对函数元数据的访问。
1-2、继承自基类的属性和方法
如果函数是某个类(如内建的函数类型)的实例,那么dir()也会包括从该类继承的属性和方法。
1-3、其他可访问的属性
这可能包括任何在函数定义之外动态添加到函数对象上的属性。
注意,dir()返回的列表并不保证顺序,且可能包含一些不是为了一般用途而设计的内部属性。
2、help()函数
help()函数在Python中用于显示模块、类、方法、函数、关键字、变量等的帮助信息,当你使用 help()函数并传入一个函数作为参数时,它会显示该函数的文档字符串(如果有的话),以及该函数的基本信息(如参数列表、返回值等)。
具体来说,help()函数获取的内容包括:
2-1、函数的基本信息
这包括函数的名称、所属的模块(如果有的话)以及它是否是内置的。
2-2、函数的参数列表
如果函数有参数,help()函数会列出它们,对于每个参数,它通常会显示参数的名称和类型(如果函数定义中有类型注解的话)。
2-3、函数的文档字符串(docstring)
如果函数有文档字符串,help()函数会显示它,文档字符串是函数定义中的第一个未赋值的字符串字面量,它应该用于解释函数的目的、参数、返回值等。
2-4、返回值
如果函数有返回值,并且文档字符串中明确提到了返回值的类型或描述,help()函数会显示这些信息。但请注意,不是所有的函数都会在文档字符串中明确说明返回值。
2-5、其他相关信息
如果函数有额外的元数据或特性(例如,它是否是装饰器、是否是类方法或静态方法等),help()函数可能会显示这些信息。
总之,使用help()函数是获取Python中函数和其他对象帮助信息的常用方法,在编写代码或学习新库时,它可以帮助你更好地理解函数的用法和行为。
二、列表
1、列表的定义
在Python中,列表(List)是一种基本的数据类型,用于存储有序的元素集合,这些元素可以是任何类型,包括整数、浮点数、字符串、元组、列表、字典等,甚至可以是不同类型的元素混合在一起。
2、列表的语法
列表使用方括号[]
来定义,元素之间用逗号(,)分隔。如lst=[3, 5, 6, 8, 10, 11, 24]
3、获取列表的属性和方法
用dir()函数获取list所有属性和方法的列表
- print(dir(list))
- # ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__',
- # '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__iadd__',
- # '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__',
- # '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__',
- # '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
4、获取列表的帮助信息
用help()函数获取list的帮助信息
- help(list)
- # Help on class list in module builtins:
- #
- # class list(object)
- # | list(iterable=(), /)
- # |
- # | Built-in mutable sequence.
- # |
- # | If no argument is given, the constructor creates a new empty list.
- # | The argument must be an iterable if specified.
- # |
- # | Methods defined here:
- # |
- # | __add__(self, value, /)
- # | Return self+value.
- # |
- # | __contains__(self, key, /)
- # | Return key in self.
- # |
- # | __delitem__(self, key, /)
- # | Delete self[key].
- # |
- # | __eq__(self, value, /)
- # | Return self==value.
- # |
- # | __ge__(self, value, /)
- # | Return self>=value.
- # |
- # | __getattribute__(self, name, /)
- # | Return getattr(self, name).
- # |
- # | __getitem__(...)
- # | x.__getitem__(y) <==> x[y]
- # |
- # | __gt__(self, value, /)
- # | Return self>value.
- # |
- # | __iadd__(self, value, /)
- # | Implement self+=value.
- # |
- # | __imul__(self, value, /)
- # | Implement self*=value.
- # |
- # | __init__(self, /, *args, **kwargs)
- # | Initialize self. See help(type(self)) for accurate signature.
- # |
- # | __iter__(self, /)
- # | Implement iter(self).
- # |
- # | __le__(self, value, /)
- # | Return self<=value.
- # |
- # | __len__(self, /)
- # | Return len(self).
- # |
- # | __lt__(self, value, /)
- # | Return self
- # |
- # | __mul__(self, value, /)
- # | Return self*value.
- # |
- # | __ne__(self, value, /)
- # | Return self!=value.
- # |
- # | __repr__(self, /)
- # | Return repr(self).
- # |
- # | __reversed__(self, /)
- # | Return a reverse iterator over the list.
- # |
- # | __rmul__(self, value, /)
- # | Return value*self.
- # |
- # | __setitem__(self, key, value, /)
- # | Set self[key] to value.
- # |
- # | __sizeof__(self, /)
- # | Return the size of the list in memory, in bytes.
- # |
- # | append(self, object, /)
- # | Append object to the end of the list.
- # |
- # | clear(self, /)
- # | Remove all items from list.
- # |
- # | copy(self, /)
- # | Return a shallow copy of the list.
- # |
- # | count(self, value, /)
- # | Return number of occurrences of value.
- # |
- # | extend(self, iterable, /)
- # | Extend list by appending elements from the iterable.
- # |
- # | index(self, value, start=0, stop=9223372036854775807, /)
- # | Return first index of value.
- # |
- # | Raises ValueError if the value is not present.
- # |
- # | insert(self, index, object, /)
- # | Insert object before index.
- # |
- # | pop(self, index=-1, /)
- # | Remove and return item at index (default last).
- # |
- # | Raises IndexError if list is empty or index is out of range.
- # |
- # | remove(self, value, /)
- # | Remove first occurrence of value.
- # |
- # | Raises ValueError if the value is not present.
- # |
- # | reverse(self, /)
- # | Reverse *IN PLACE*.
- # |
- # | sort(self, /, *, key=None, reverse=False)
- # | Sort the list in ascending order and return None.
- # |
- # | The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
- # | order of two equal elements is maintained).
- # |
- # | If a key function is given, apply it once to each list item and sort them,
- # | ascending or descending, according to their function values.
- # |
- # | The reverse flag can be set to sort in descending order.
- # |
- # | ----------------------------------------------------------------------
- # | Class methods defined here:
- # |
- # | __class_getitem__(...) from builtins.type
- # | See PEP 585
- # |
- # | ----------------------------------------------------------------------
- # | Static methods defined here:
- # |
- # | __new__(*args, **kwargs) from builtins.type
- # | Create and return a new object. See help(type) for accurate signature.
- # |
- # | ----------------------------------------------------------------------
- # | Data and other attributes defined here:
- # |
- # | __hash__ = None
5、列表的用法
5-1、创建列表
5-1-1、创建一个空列表
- # 创建一个空列表
- my_list = []
- print(my_list) # 输出:[]
5-1-2、创建一个包含元素的列表
- # 创建一个包含元素的列表
- my_list = [3, 5, 6, 8, 10, 11, 24]
- print(my_list) # 输出: [3, 5, 6, 8, 10, 11, 24]
5-1-3、创建一个包含不同类型元素的列表
- # 创建一个包含不同类型元素的列表
- mixed_list = [3, 'Myelsa', 'three', 3.0, True, [5, 6]]
- print(mixed_list) # 输出: [3, 'Myelsa', 'three', 3.0, True, [5, 6]]
5-2、访问列表元素
- # 访问列表中的元素
- my_list = [3, 5, 6, 8, 10, 11, 24]
- print(my_list[0]) # 输出: 3 (访问第一个元素)
- print(my_list[-1]) # 输出: 24 (访问最后一个元素)
- print(my_list[-3:-1]) # 输出:[10, 11] (切片操作,访问索引-3到-2的元素,不包括索引-1)
- print(my_list[2:4]) # 输出: [6, 8] (切片操作,访问索引2到3的元素,不包括索引4)
- print(my_list[:]) # 输出:[3, 5, 6, 8, 10, 11, 24] (获取列表全部元素)
5-3、修改列表元素
- # 修改列表中的元素
- my_list = [3, 5, 6, 8, 10, 11, 24]
- my_list[2] = 100 # 将索引为2的元素修改为100,默认索引从0开始
- print(my_list) # 输出: [3, 5, 100, 8, 10, 11, 24]
5-4、列表用法
5-4-1、append()方法
- # append() 方法:在列表末尾添加元素
- my_list = [3, 5, 6, 8, 10, 11, 24]
- my_list.append(7)
- print(my_list) # 输出: [3, 5, 6, 8, 10, 11, 24, 7]
5-4-2、insert()方法
- # insert()方法:在指定索引处插入元素,列表默认索引从0开始
- my_list = [3, 5, 6, 8, 10, 11, 24]
- my_list.insert(1, 'a')
- print(my_list) # 输出: [3, 'a', 5, 6, 8, 10, 11, 24]
5-4-3、remove()方法
- # remove()方法:移除列表中第一个匹配的元素
- my_list = [3, 5, 6, 8, 11, 10, 11, 24]
- my_list.remove(11)
- print(my_list) # 输出: [3, 5, 6, 8, 10, 11, 24]
5-4-4、pop()方法
- # pop()方法:移除并返回列表中的最后一个元素,或者指定索引的元素
- my_list = [3, 5, 6, 8, 10, 11, 24]
- last_element = my_list.pop()
- print(last_element) # 输出: 24
- print(my_list) # 输出: [3, 5, 6, 8, 10, 11]
5-4-5、index()方法
- # index()方法:返回指定元素在列表中的索引
- my_list = [3, 5, 6, 8, 10, 11, 24]
- index_of_three = my_list.index(3)
- print(index_of_three) # 输出: 0
5-4-6、sort()方法
- # sort()方法:对列表进行排序(原地排序)
- my_list = [3, 5, 10, 8, 6, 11, 24]
- my_list.sort()
- print(my_list) # 输出:[3, 5, 6, 8, 10, 11, 24]
5-4-7、sorted()函数
- # sorted()函数:返回一个新的已排序的列表(不改变原列表)
- my_list = [3, 5, 10, 8, 6, 11, 24]
- sorted_list = sorted(my_list)
- print(sorted_list) # 输出: [3, 5, 6, 8, 10, 11, 24]
- print(my_list) # 输出:[3, 5, 10, 8, 6, 11, 24]
5-4-8、count()方法
- # count()方法:返回指定元素在列表中出现的次数
- my_list = [3, 5, 6, 8, 10, 11, 10, 24]
- count_of_ones = my_list.count(10)
- print(count_of_ones) # 输出: 2
5-4-9、extend()方法
- # extend()方法:将另一个列表的所有元素添加到当前列表的末尾
- my_list = [3, 5, 6, 8, 10, 11, 24]
- another_list = [7, 2, 9]
- my_list.extend(another_list)
- print(my_list) # 输出: [3, 5, 6, 8, 10, 11, 24, 7, 2, 9]
5-4-10、clear()方法
- # clear()方法:清空列表
- my_list = [3, 5, 6, 8, 10, 11, 24]
- my_list.clear()
- print(my_list) # 输出: []
5-4-11、使用del语句
- # 使用del语句:删除指定索引对应元素
- my_list = [3, 5, 6, 8, 10, 11, 24]
- del my_list[1] # 删除索引为1的元素
- print(my_list) # 输出: [3, 6, 8, 10, 11, 24]
5-4-12、reverse()方法
- # reverse()方法:直接反转原列表
- my_list = [3, 5, 6, 8, 10, 11, 24]
- print("原始列表:", my_list) # 输出:原始列表: [3, 5, 6, 8, 10, 11, 24]
- my_list.reverse()
- print("反转后的列表:", my_list) # 输出:反转后的列表: [24, 11, 10, 8, 6, 5, 3]
5-4-13、reversed()函数
- # reversed()方法:返回一个反转的迭代器,而不是一个列表,且不影响原列表
- my_list = [3, 5, 6, 8, 10, 11, 24]
- reversed_my_list = list(reversed( my_list)) # 注意,这里要用list()函数转化为列表形式
- print("原始列表:", my_list) # 输出:原始列表: [3, 5, 6, 8, 10, 11, 24]
- print("反转后的列表:", reversed_my_list) # 输出:反转后的列表: [24, 11, 10, 8, 6, 5, 3]
5-5、列表推导式
- # 使用列表推导式创建列表
- squares = [x**2 for x in range(1, 6)]
- print(squares) # 输出: [1, 4, 9, 16, 25]
三、元组
1、元组的定义
在Python中,元组(tuple)是一种不可变(immutable)的序列类型,用于存储一系列按序排列的元素。与列表(list)类似,元组也是有序的,并且可以包含不同类型的元素,但是,与列表不同的是,元组一旦创建就不能被修改(即不能添加、删除或修改元素)。
2、元组的语法
元组使用圆括号()进行定义,即使元组中只有一个元素,也需要在这个元素后面加上逗号 , 以区分该元素和圆括号内的其他内容(比如函数调用或数学表达式)。
3、获取元组的属性和方法
用dir()函数获取tuple所有属性和方法的列表
- print(dir(tuple))
- # ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__',
- # '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__',
- # '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__',
- # '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
4、获取元组的帮助信息
用help()函数获取tuple的帮助信息
- help(tuple)
- # Help on class tuple in module builtins:
- #
- # class tuple(object)
- # | tuple(iterable=(), /)
- # |
- # | Built-in immutable sequence.
- # |
- # | If no argument is given, the constructor returns an empty tuple.
- # | If iterable is specified the tuple is initialized from iterable's items.
- # |
- # | If the argument is a tuple, the return value is the same object.
- # |
- # | Built-in subclasses:
- # | asyncgen_hooks
- # | UnraisableHookArgs
- # |
- # | Methods defined here:
- # |
- # | __add__(self, value, /)
- # | Return self+value.
- # |
- # | __contains__(self, key, /)
- # | Return key in self.
- # |
- # | __eq__(self, value, /)
- # | Return self==value.
- # |
- # | __ge__(self, value, /)
- # | Return self>=value.
- # |
- # | __getattribute__(self, name, /)
- # | Return getattr(self, name).
- # |
- # | __getitem__(self, key, /)
- # | Return self[key].
- # |
- # | __getnewargs__(self, /)
- # |
- # | __gt__(self, value, /)
- # | Return self>value.
- # |
- # | __hash__(self, /)
- # | Return hash(self).
- # |
- # | __iter__(self, /)
- # | Implement iter(self).
- # |
- # | __le__(self, value, /)
- # | Return self<=value.
- # |
- # | __len__(self, /)
- # | Return len(self).
- # |
- # | __lt__(self, value, /)
- # | Return self
- # |
- # | __mul__(self, value, /)
- # | Return self*value.
- # |
- # | __ne__(self, value, /)
- # | Return self!=value.
- # |
- # | __repr__(self, /)
- # | Return repr(self).
- # |
- # | __rmul__(self, value, /)
- # | Return value*self.
- # |
- # | count(self, value, /)
- # | Return number of occurrences of value.
- # |
- # | index(self, value, start=0, stop=9223372036854775807, /)
- # | Return first index of value.
- # |
- # | Raises ValueError if the value is not present.
- # |
- # | ----------------------------------------------------------------------
- # | Class methods defined here:
- # |
- # | __class_getitem__(...) from builtins.type
- # | See PEP 585
- # |
- # | ----------------------------------------------------------------------
- # | Static methods defined here:
- # |
- # | __new__(*args, **kwargs) from builtins.type
- # | Create and return a new object. See help(type) for accurate signature.
5、元组的用法
5-1、创建元组
5-1-1、创建一个空元组
- # 创建空元组
- my_tuple = ()
- print(my_tuple) # 输出:()
5-1-2、创建一个包含1个元素的元组
- # 只有一个元素的元组需要一个逗号
- single_element_tuple = (5,)
- print(single_element_tuple) # 输出:(5,)
5-1-3、创建一个包含多个元素的元组
- # 使用圆括号创建元组
- my_tuple = (3, 5, 6, 8, 10, 11, 24)
- print(my_tuple) # 输出:(3, 5, 6, 8, 10, 11, 24)
-
- # 也可以不使用圆括号,仅通过逗号分隔元素来创建元组
- another_tuple = 3, 5, 6, 8, 10, 11, 24
- print(another_tuple) # 输出:(3, 5, 6, 8, 10, 11, 24)
5-1-4、创建一个包含不同类型元素的元组
- # 元组可以包含不同类型的元素
- mixed_tuple = (1, 'two', 3.0, [4, 5])
- print(mixed_tuple) # 输出:(1, 'two', 3.0, [4, 5])
5-2、访问元组中的元素
- # 访问元组中的元素
- my_tuple = (3, 5, 6, 8, 10, 11, 24)
- print(my_tuple [0]) # 输出: 3 (访问第一个元素)
- print(my_tuple [-1]) # 输出: 24 (访问最后一个元素)
- print(my_tuple [-3:-1]) # 输出:(10, 11) (切片操作,访问索引-3到-2的元素,不包括索引-1)
- print(my_tuple [2:4]) # 输出: (6, 8) (切片操作,访问索引2到3的元素,不包括索引4)
- print(my_tuple [:]) # 输出:(3, 5, 6, 8, 10, 11, 24) (获取元组全部元素)
5-3、元组的不可变性
- my_tuple = (3, 5, 6, 8, 10, 11, 24)
- # 尝试修改元组中的元素会导致错误
- try:
- my_tuple[0] = 10
- except TypeError as e:
- print(e) # 输出: 'tuple' object does not support item assignment
5-4、元组用法
5-4-1、count()方法
- # count()方法:计算元组中某个元素的出现次数
- my_tuple = (3, 5, 6, 8, 10, 11, 10, 24)
- print(my_tuple.count(10)) # 输出: 2
5-4-2、index()方法
- # index()方法:找到元组中某个元素的索引
- my_tuple = (3, 5, 6, 8, 10, 11, 10, 24)
- print(my_tuple.index(6)) # 输出: 2 (索引默认从0开始)
5-4-3、元组作为字典的键
- my_dict = {(3, 6): 'Bruce', (10, 8): 'Jimmy', (10, 24):'Myelsa', (5, 11):'Lucy'}
- print(my_dict[(10, 24)]) # 输出: Myelsa
5-4-4、元组解包
- my_tuple = (3, 5, 6, 8, 10, 11, 10, 24)
- a, b, c, d, e, f, g, h = my_tuple
- print(a, b, c, d, e, f, g, h) # 输出: 3 5 6 8 10 11 10 24
5-4-5、元组在循环中的使用
- colors = ['red', 'green', 'blue']
- numbers = (1, 2, 3)
- for color, number in zip(colors, numbers):
- print(f"Color: {color}, Number: {number}")
- # 输出:
- # Color: red, Number: 1
- # Color: green, Number: 2
- # Color: blue, Number: 3
5-5、元组推导式(非官方术语)
- # 使用元组推导式创建列表
- squares = tuple((x**2 for x in range(1, 6)))
- print(squares) # 输出: (1, 4, 9, 16, 25)
四、推荐阅读
1、Python-VBA函数之旅-list()函数
2、Python-VBA函数之旅-tuple()函数
3、Python算法之旅
4、Python函数之旅
5、个人主页-神奇夜光杯-CSDN



评论记录:
回复评论: