Python yang biasa menggunakan fungsi terbina dalam dan penggunaannya

PHPz
Lepaskan: 2023-04-24 08:13:06
ke hadapan
1933 orang telah melayarinya

1. abs()

abs() digunakan untuk mengembalikan nilai mutlak nombor.

Dalam python, untuk jenis berangka terbina dalam (int, float atau kompleks), anda boleh terus menggunakan fungsi abs() untuk mencari nilai mutlaknya. Tetapi untuk jenis tersuai jenis angka, jika anda ingin menggunakan fungsi abs() untuk mencari nilai mutlaknya, anda perlu melaksanakan kaedah __abs__(). Pelaksanaan kaedah

abs() juga sangat mudah Anda hanya perlu mentakrifkan kaedah bernama __abs__() dalam kelas dan mengembalikan nilai mutlak nombor tersebut. Contohnya:

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

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

Dalam kod di atas, kami mentakrifkan kelas bernama MyNumber, yang mengandungi atribut num dan melaksanakan kaedah __abs__(). Dalam kaedah __abs__(), kami memanggil fungsi abs() untuk mencari nilai mutlak nombor tersebut.

Akhir sekali, kami menjadikan objek MyNumber dan memasukkan nombor negatif sebagai parameter. Kemudian, kami memanggil fungsi abs() untuk mengira nilai mutlak objek MyNumber dan mendapat keputusan 3.

2. Fungsi aiter()

aiter() ialah fungsi dalam pustaka asyncio, digunakan untuk menjana objek lelaran tak segerak. Ciri versi baharu Python3.10.

Objek lelaran tak segerak ialah objek lelaran yang boleh dilalui secara tak segerak. Melalui iterator tak segerak, kita boleh mendapatkan unsur-unsur dalam iterator secara tak segerak satu demi satu.

aiter() menerima objek lelaran sebagai parameter dan mengembalikan objek lelaran tak segerak. Objek lelaran tak segerak ialah contoh kelas AsyncIterator.

Berikut ialah sintaks asas fungsi aiter():

asyncio.aiter(iterable, /)
Salin selepas log masuk

Di mana, iterable ialah objek boleh lelar, yang boleh menjadi sebarang objek yang menyokong lelaran tak segerak, seperti penjana tak segerak , senarai tak segerak, dsb.

Apabila menggunakan lelaran tak segerak, kita perlu menggunakan pernyataan async for untuk lelaran tak segerak, seperti yang ditunjukkan di bawah:

async def my_func():
    async for i in my_async_iterable:
        print(i)
Salin selepas log masuk

Dalam contoh di atas, my_async_iterable boleh dilalui melalui aiter() Objek lelaran tak segerak yang dijana oleh fungsi juga boleh menjadi objek lain yang menyokong lelaran tak segerak.

Perlu diambil perhatian bahawa selepas lelaran tak segerak dilalui, kita perlu menutup secara eksplisit objek lelaran tak segerak untuk melepaskan sumber yang sepadan, seperti ditunjukkan di bawah:

async def my_func():
    async with aiter(my_async_iterable) as iter_obj:
        async for i in iter_obj:
            print(i)
Salin selepas log masuk

Luluskan async with kenyataan mencipta pengurus konteks tak segerak yang boleh menutup lelaran tak segerak secara automatik. Kaedah ini agak mudah dan disyorkan.

3. Fungsi all()

digunakan untuk menentukan sama ada semua elemen dalam objek boleh lelar adalah Benar.

Format sintaks adalah seperti berikut:

all(iterable)
Salin selepas log masuk

Antaranya, iterable ialah objek iterable, seperti senarai, tuple, set, rentetan, dll.

Hasil pulangan ialah nilai Boolean Jika semua elemen dalam lelaran adalah Benar, ia akan mengembalikan Benar, jika tidak ia mengembalikan Salah. Mengembalikan Benar jika lelang kosong.

Contoh:

>>> all([True, True, False, True])
False

>>> all([1, 2, 3, 4])
True

>>> all(('a', 'b', 'c'))
True

>>> all(['', [], {}])
False
Salin selepas log masuk

Dalam contoh di atas, satu elemen dalam senarai pertama ialah False, jadi False dikembalikan. Semua elemen dalam senarai kedua adalah nilai bukan sifar, jadi Benar dikembalikan. Kedua-dua tupel dan senarai boleh dihantar ke fungsi all() sebagai objek boleh lelaran. Senarai terakhir mengandungi urutan atau kamus kosong, jadi Palsu dikembalikan. Ambil perhatian bahawa senarai kosong, tupel, set, rentetan, dll. semuanya akan mengembalikan True.

Nota:

  • Jika terdapat nilai palsu seperti False, 0, '', None, dsb. dalam objek boleh lelar yang diberikan, all() fungsi juga akan mengembalikan False.

  • Anda boleh menggunakan fungsi any() untuk menentukan sama ada terdapat sekurang-kurangnya satu elemen yang Benar dalam objek boleh lelaran.

4. anext()

anext() ialah fungsi dalam modul asyncio, digunakan untuk mendapatkan nilai seterusnya daripada iterator tak segerak. Jika lelaran tak segerak telah tamat, anext() akan menimbulkan pengecualian StopAsyncIteration. Ciri versi baharu Python3.10.

Dalam asyncio, iterator asynchronous (async iterator) ditakrifkan sebagai objek yang melaksanakan kaedah __aiter__() dan __anext__(). Kaedah aiter() mengembalikan objek iterator itu sendiri dan kaedah anext() mengembalikan nilai seterusnya Jika tiada lagi nilai tersedia, pengecualian StopAsyncIteration dinaikkan.

Berikut ialah contoh menggunakan fungsi anext():

import asyncio
async def async_generator(): hasil 1 hasil 2 hasil 3
async def main( ): ag = async_generator() try: while True:

        value = await asyncio.anext(ag)
        print(value)
except StopAsyncIteration:
    pass
Salin selepas log masuk

asyncio.run(main())

Kod di atas mencipta penjana tak segerak async_generator() , Penjana ini mengembalikan 1, 2, 3 satu demi satu. Dalam fungsi main(), kami menggunakan fungsi anext() untuk mendapatkan nilai seterusnya daripada penjana async sehingga pengecualian StopAsyncIteration dinaikkan. Dalam contoh ini, kami menggunakan fungsi asyncio.run() untuk menjalankan main() coroutine, yang menggunakan Python 3.7 dan ke atas.

5. Fungsi any()

digunakan untuk menentukan sama ada terdapat sekurang-kurangnya satu elemen dalam objek boleh lelar yang memenuhi syarat. Fungsi ini mengembalikan nilai Boolean, Benar jika terdapat elemen yang memenuhi syarat, jika tidak ia mengembalikan Salah.

Berikut ialah format sintaks mana-mana() fungsi:

any(iterable)
Salin selepas log masuk

其中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)
Salin selepas log masuk

输出:

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)
Salin selepas log masuk

输出:

True

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

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

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

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

六、ascii()函数

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

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

ascii(object)
Salin selepas log masuk

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

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

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

n = 1234
print(ascii(n)) 
# 输出: '1234'

lst = [1, 2, 'hello', '你好']
print(ascii(lst)) 
# 输出: '[1, 2, \'hello\', \'\\u4f60\\u597d\']'
Salin selepas log masuk

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

注意事项

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

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

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

Atas ialah kandungan terperinci Python yang biasa menggunakan fungsi terbina dalam dan penggunaannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan