Heim  >  Artikel  >  Backend-Entwicklung  >  In Python häufig verwendete integrierte Funktionen und deren Verwendung

In Python häufig verwendete integrierte Funktionen und deren Verwendung

PHPz
PHPznach vorne
2023-04-24 08:13:061884Durchsuche

1. abs()

abs() wird verwendet, um den absoluten Wert einer Zahl zurückzugeben.

In Python können Sie für integrierte numerische Typen (int, float oder complex) direkt die Funktion abs() verwenden, um deren Absolutwert zu ermitteln. Wenn Sie jedoch für einen benutzerdefinierten Typ eines numerischen Typs die Funktion abs() verwenden möchten, um seinen absoluten Wert zu ermitteln, müssen Sie die Methode __abs__() implementieren. Die Implementierung der Methode

abs() ist ebenfalls sehr einfach. Sie müssen lediglich eine Methode namens __abs__() in der Klasse definieren und den absoluten Wert der Zahl zurückgeben. Zum Beispiel:

class MyNumber:
    def __init__(self, num):
        self.num = num
    
    def __abs__(self):
        return abs(self.num)

n = MyNumber(-3)
print(abs(n))    # 输出结果为:3

Im obigen Code definieren wir eine Klasse mit dem Namen MyNumber, die ein num-Attribut enthält und die __abs__()-Methode implementiert . In der Methode <code>__abs__() rufen wir die Funktion abs() auf, um den absoluten Wert der Zahl zu ermitteln. MyNumber的类,其中包含一个num属性,并实现了__abs__()方法。在__abs__()方法中,我们调用了abs()函数来求该数的绝对值。

最后,我们实例化了一个MyNumber对象,传入了一个负数作为参数。然后,我们调用了abs()函数来计算MyNumber对象的绝对值,得到了3这个结果。

二、aiter()函数

aiter()asyncio 库中的一个函数,用于生成异步迭代器对象。Python3.10 新版本功能。

异步迭代器对象是一种可以异步遍历的迭代器对象。通过异步迭代器,我们可以逐个异步获取迭代器中的元素。

aiter() 接受一个可迭代对象作为参数,并返回一个异步迭代器对象。异步迭代器对象是 AsyncIterator 类的实例。

以下是 aiter() 函数的基本语法:

asyncio.aiter(iterable, /)

其中,iterable 是一个可迭代对象,它可以是任何支持异步迭代的对象,如异步生成器、异步列表等。

使用异步迭代器时,我们需要使用 async for 语句进行异步迭代,如下所示:

async def my_func():
    async for i in my_async_iterable:
        print(i)

在上面的示例中,my_async_iterable 可以是通过 aiter() 函数生成的异步迭代器对象,也可以是其它支持异步迭代的对象。

需要注意的是,在异步迭代器遍历完之后,我们需要显式关闭该异步迭代器对象,以释放相应的资源,如下所示:

async def my_func():
    async with aiter(my_async_iterable) as iter_obj:
        async for i in iter_obj:
            print(i)

通过 async with

Schließlich haben wir ein MyNumber-Objekt instanziiert und eine negative Zahl als Parameter übergeben. Dann haben wir die Funktion abs() aufgerufen, um den absoluten Wert des Objekts MyNumber zu berechnen, und das Ergebnis 3 erhalten.

2. Die aiter()-Funktion

aiter() ist eine Funktion in der asyncio-Bibliothek, die zum Generieren asynchroner Iteratorobjekte verwendet wird.

Python3.10 neue Versionsfunktionen.

Asynchrones Iteratorobjekt ist ein Iteratorobjekt, das asynchron durchlaufen werden kann. Durch asynchrone Iteratoren können wir die Elemente im Iterator einzeln asynchron abrufen.

aiter() akzeptiert ein iterierbares Objekt als Parameter und gibt ein asynchrones Iteratorobjekt zurück. Asynchrone Iteratorobjekte sind Instanzen der Klasse AsyncIterator.

Das Folgende ist die grundlegende Syntax der Funktion aiter():

all(iterable)

Dabei ist iterable ein iterierbares Objekt, bei dem es sich um jedes Objekt handeln kann, das asynchrone Iteration unterstützt , wie asynchrone Generatoren, asynchrone Listen usw.

Bei Verwendung eines asynchronen Iterators müssen wir die Anweisung async for für die asynchrone Iteration verwenden, wie unten gezeigt:
    >>> all([True, True, False, True])
    False
    
    >>> all([1, 2, 3, 4])
    True
    
    >>> all((&#39;a&#39;, &#39;b&#39;, &#39;c&#39;))
    True
    
    >>> all([&#39;&#39;, [], {}])
    False
  • Im obigen Beispiel kann my_async_iterable übergeben werden aiter() generierte asynchrone Iteratorobjekt kann auch ein anderes Objekt sein, das die asynchrone Iteration unterstützt.

    Es ist zu beachten, dass wir nach dem Durchlaufen des asynchronen Iterators das asynchrone Iteratorobjekt explizit schließen müssen, um die entsprechenden Ressourcen freizugeben, wie unten gezeigt:
  •         value = await asyncio.anext(ag)
            print(value)
    except StopAsyncIteration:
        pass
  • Durch die async with-Anweisung erstellen Sie eine asynchroner Kontextmanager, der den asynchronen Iterator automatisch schließt. Diese Methode ist relativ einfach und wird empfohlen.

    3. Die all()-Funktion
wird verwendet, um zu bestimmen, ob alle Elemente in einem iterierbaren Objekt True sind.

Das Syntaxformat lautet wie folgt:

any(iterable)
Dabei ist iterable ein iterierbares Objekt, z. B. eine Liste, ein Tupel, eine Menge, eine Zeichenfolge usw.

Das Rückgabeergebnis ist ein boolescher Wert. Wenn alle Elemente in iterable True sind, wird True zurückgegeben, andernfalls wird False zurückgegeben. Gibt True zurück, wenn iterable leer ist.

Beispiel:

lst = [2, 4, 6, 8, 9, 10]
result = any(x % 2 == 1 for x in lst)
print(result)
Im obigen Beispiel ist ein Element in der ersten Liste False, daher wird False zurückgegeben. Alle Elemente in der zweiten Liste sind Werte ungleich Null, daher wird True zurückgegeben. Sowohl Tupel als auch Listen können als iterierbare Objekte an die Funktion all() übergeben werden. Die letzte Liste enthält leere Sequenzen oder Wörterbücher, daher wird False zurückgegeben. Beachten Sie, dass leere Listen, Tupel, Mengen, Zeichenfolgen usw. alle „True“ zurückgeben.

Hinweis:

Wenn das angegebene iterierbare Objekt Elemente enthält, die falsche Werte wie False, 0, '', None usw. haben, gibt die Funktion all() auch False zurück.

Sie können die Funktion „any()“ verwenden, um festzustellen, ob im iterierbaren Objekt mindestens ein Element vorhanden ist, das „True“ ist.

4. anext()

anext() ist eine Funktion im Asyncio-Modul, die verwendet wird, um den nächsten Wert von einem asynchronen Iterator abzurufen. Wenn der asynchrone Iterator beendet ist, löst anext() eine StopAsyncIteration-Ausnahme aus.

Python3.10 neue Versionsfunktionen.

In Asyncio wird ein asynchroner Iterator (asynchroner Iterator) als Objekt definiert, das die Methoden __aiter__() und __anext__() implementiert. Die Methode 🎜aiter🎜() gibt das Iteratorobjekt selbst zurück und die Methode 🎜anext🎜() gibt den nächsten Wert zurück. Wenn keine weiteren Werte verfügbar sind, wird eine StopAsyncIteration-Ausnahme ausgelöst. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung der anext()-Funktion: 🎜🎜🎜import asyncio🎜async def async_generator(): yield 1 yield 2 yield 3🎜async def main(): ag = async_generator() try: while True: 🎜🎜
s = "Hello, World!"
result = any(c.isupper() for c in s)
print(result)
🎜asyncio.run(main())🎜🎜Der obige Code erstellt einen asynchronen Generator async_generator(), der nacheinander 1, 2 und 3 zurückgibt. In der Funktion main() verwenden wir die Funktion anext(), um den nächsten Wert vom Async-Generator abzurufen, bis die StopAsyncIteration-Ausnahme ausgelöst wird. In diesem Beispiel verwenden wir die Funktion asyncio.run(), um die Coroutine main() auszuführen, die Python 3.7 und höher verwendet. 🎜🎜5. Die Funktion „any()“ 🎜🎜 wird verwendet, um festzustellen, ob in einem iterierbaren Objekt mindestens ein Element vorhanden ist, das die Bedingungen erfüllt. Diese Funktion gibt einen booleschen Wert zurück, True, wenn es ein Element gibt, das die Bedingung erfüllt, andernfalls gibt sie False zurück. 🎜🎜Das Folgende ist das Syntaxformat der Funktion any(): 🎜
any(iterable)

其中iterable是一个可迭代对象,例如列表、元组、集合或字典的键等等。

any()函数的工作原理如下:

  • 遍历可迭代对象中的所有元素。

  • 对于每个元素,将其作为参数传递给判断函数,判断函数返回True或False。

  • 如果存在任意一个元素使得判断函数返回True,则返回True,并停止遍历,否则返回False。

下面是一个示例,演示如何使用any()函数来判断一个列表中是否存在奇数:

lst = [2, 4, 6, 8, 9, 10]
result = any(x % 2 == 1 for x in lst)
print(result)

输出:

True

在上面的示例中,我们使用生成器表达式来表达“是否存在奇数”这个条件。这个表达式对于lst中的每个元素x都执行一次,如果x % 2 == 1返回True,则any()函数会立即返回True。因为9是lst中的一个奇数,所以any()函数返回True。

除了列表,any()函数也适用于其他可迭代对象。例如,我们可以使用any()函数来检查一个字符串中是否存在大写字母:

s = "Hello, World!"
result = any(c.isupper() for c in s)
print(result)

输出:

True

在上面的示例中,我们使用字符串的isupper()方法来判断每个字符是否为大写字母,如果存在任意一个字符是大写字母,则any()函数返回True。因为"H"是一个大写字母,所以any()函数返回True。

在使用any()函数时,需要注意以下几点:

  • 如果iterable为空,any()函数将返回False。

  • 如果iterable中的所有元素都为假值(例如0、空字符串或空列表),则any()函数将返回False。

六、ascii()函数

用于将给定字符串或对象的表示转换为ASCII码。如果给定对象不是字符串,则会先将其转换为ASCII码表示。如果给定字符串中包含了非ASCII字符,则会使用Python的转义序列来表示这些字符。

以下是ascii()函数的语法:

ascii(object)

其中,object是要转换为ASCII码表示的字符串或对象。

以下是ascii()函数的示例:

s = &#39;hello, 你好!&#39;
print(ascii(s)) 
# 输出: &#39;hello, \u4f60\u597d\uff01&#39;

n = 1234
print(ascii(n)) 
# 输出: &#39;1234&#39;

lst = [1, 2, &#39;hello&#39;, &#39;你好&#39;]
print(ascii(lst)) 
# 输出: &#39;[1, 2, \&#39;hello\&#39;, \&#39;\\u4f60\\u597d\&#39;]&#39;

在以上示例中,第一个示例中的字符串包含了一个非ASCII字符,因此在转换为ASCII码表示时使用了Python的转义序列;第二个示例中的对象是一个整数,因此可以直接转换为ASCII码表示;第三个示例中的对象是一个列表,其中包含了一个非ASCII字符串,因此在转换为ASCII码表示时使用了Python的转义序列。

注意事项

  • ascii()函数只能处理字符串类型的输入,对其他类型的对象(如数字、列表、元组、字典等)会引发TypeError异常。

  • ascii()函数只能处理ASCII字符以外的非ASCII字符,对于ASCII字符,它不做任何处理。(ASCII字符是指Unicode编码为0~127的字符,包括所有的英文字母、数字、标点符号和控制字符。)

  • ascii()函数返回的ASCII码表示是一个字符串,如果需要使用对应的Unicode码,可以使用Python内置的ord()函数。

Das obige ist der detaillierte Inhalt vonIn Python häufig verwendete integrierte Funktionen und deren Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen