亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

15個最近才知道的Python實用操作

 更新時間:2023年04月06日 15:18:29   作者:Python數(shù)據(jù)開發(fā)  
這篇文章主要和大家分享了15個最近才知道的Python實用操作,文中的示例代碼講解詳細,對我們深入了解Python有一定的幫助,感興趣的小伙伴可以了解一下

1)映射代理(不可變字典)

映射代理是創(chuàng)建后無法更改的字典。如果我們不希望用戶能夠更改我們的值,就可以使用它。

from types import MappingProxyType

mp = MappingProxyType({'apple':4, 'orange':5})
print(mp)

# {'apple': 4, 'orange': 5}

如果我們嘗試更改映射代理中的內(nèi)容,就會出現(xiàn)錯誤。

from types import MappingProxyType

mp = MappingProxyType({'apple':4, 'orange':5})
print(mp)

'''
Traceback (most recent call last):
  File "some/path/a.py", line 4, in <module>
    mp['apple'] = 10
    ~~^^^^^^^^^
TypeError: 'mappingproxy' object does not support item assignment
'''

2) dict 對于類和對象是不同的

class Dog:
  def __init__(self, name, age):
    self.name = name
    self.age = age

rocky = Dog('rocky', 5)

print(type(rocky.__dict__)) # <class 'dict'>
print(rocky.__dict__) # {'name': 'rocky', 'age': 5}

print(type(Dog.__dict__)) # <class 'mappingproxy'>
print(Dog.__dict__)
# {'__module__': '__main__', 
# '__init__': <function Dog.__init__ at 0x108f587c0>, 
# '__dict__': <attribute '__dict__' of 'Dog' objects>, 
# '__weakref__': <attribute '__weakref__' of 'Dog' objects>, 
# '__doc__': None}

對象的 dict 屬性是普通字典,而類的 dict 屬性是映射代理,它們本質(zhì)上是不可變字典(無法更改)。

3) any() 和 all()

any([True, False, False]) # True

any([False, False, False]) # False

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

all([True, True, True]) # True

any() 和 all() 函數(shù)都接受可迭代對象(例如列表)。

any() 如果至少有一個元素為 True,則返回 True。

all() 只有當所有元素都為 True 時才返回 True。

4) divmod()

內(nèi)置的divmod()函數(shù)可以同時執(zhí)行//和%運算符。

quotient, remainder = divmod(27, 10)

???????print(quotient)  # 2
print(remainder) # 7

這里,27 // 10 的值為2,而 27 % 10 的值為7。因此,返回元組2,7。

5) 使用格式化字符串輕松檢查變量

name = 'rocky'
age = 5

string = f'{name=} {age=}'
print(string)

# name='rocky' age=5

在格式化字符串中,我們可以在變量后面添加 = 以使用 var_name=var_value 的語法打印它。

6) 我們可以將浮點數(shù)轉(zhuǎn)換為比率

print(float.as_integer_ratio(0.5))    # (1, 2)

print(float.as_integer_ratio(0.25))   # (1, 4)

print(float.as_integer_ratio(1.5))    # (3, 2)

內(nèi)置的 float.as_integer_ratio() 函數(shù)允許我們將浮點數(shù)轉(zhuǎn)換為表示分數(shù)的元組。但有時它會表現(xiàn)得很奇怪。

print(float.as_integer_ratio(0.1))    # (3602879701896397, 36028797018963968)

print(float.as_integer_ratio(0.2))    # (3602879701896397, 18014398509481984)

7) 用globals()和locals()顯示現(xiàn)有的全局/本地變量

x = 1
print(globals())

# {'__name__': '__main__', '__doc__': None, ..., 'x': 1}

內(nèi)置的 globals() 函數(shù)返回一個包含所有全局變量及其值的字典。

def test():
    x = 1
    y = 2
    print(locals())

test()

# {'x': 1, 'y': 2}

內(nèi)置函數(shù) locals() 返回一個包含所有局部變量及其值的字典。

8) import() 函數(shù)

import numpy as np
import pandas as pd

^ 導入模塊的常規(guī)方式。

np = __import__('numpy')
pd = __import__('pandas')

^ 這與上面的代碼塊執(zhí)行相同的操作。

9) Python中的無限值

a = float('inf')
b = float('-inf')

^ 我們可以定義正無窮和負無窮。 正無窮大于所有其他數(shù)字,而負無窮小于所有其他數(shù)字。

10) 我們可以使用 ‘pprint’ 來漂亮地打印東西

from pprint import pprint

d = {"A":{"apple":1, "orange":2, "pear":3}, 
    "B":{"apple":4, "orange":5, "pear":6}, 
    "C":{"apple":7, "orange":8, "pear":9}}

pprint(d)

11) 我們可以在Python中打印彩色輸出

我們需要先安裝colorama。

from colorama import Fore

print(Fore.RED + "hello world")
print(Fore.BLUE + "hello world")
print(Fore.GREEN + "hello world")

12) 創(chuàng)建字典的更快方法

d1 = {'apple':'pie', 'orange':'juice', 'pear':'cake'}

^ 正常的方式

d2 = dict(apple='pie', orange='juice', pear='cake')

^更快的方法。這與上面的代碼塊完全相同,但我們輸入較少的引號。

13) 我們可以在Python中取消打印的內(nèi)容

CURSOR_UP = '\033[1A'
CLEAR = '\x1b[2K'

print('apple')
print('orange')
print('pear')
print((CURSOR_UP + CLEAR)*2, end='') # this unprints 2 lines
print('pineapple')

14) 對象中的私有變量并不是真正的私有

class Dog:
  def __init__(self, name):
    self.__name = name

  @property
  def name(self):
    return self.__name

這里,self.__name變量應(yīng)該是私有的。我們不應(yīng)該能夠從類外部訪問它。但實際上我們可以。

rocky = Dog('rocky')
print(rocky.__dict__)    # {'_Dog__name': 'rocky'}

我們可以使用 dict 屬性來訪問或編輯這些屬性。

15) 我們可以使用’type()'創(chuàng)建類

classname = type(name, bases, dict)

name 是一個字符串,代表類的名稱

bases 是包含類父類的元組

dict 是包含屬性和方法的字典

class Dog:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def bark(self):
    print(f'Dog({self.name}, {self.age})')

^ 以正常方式創(chuàng)建一個 Dog 類

def __init__(self, name, age):
  self.name = name
  self.age = age

def bark(self):
  print(f'Dog({self.name}, {self.age})')

Dog = type('Dog', (), {'__init__':__init__, 'bark':bark})

^ 使用 type() 創(chuàng)建與上面完全相同的 Dog 類

以上就是15個最近才知道的Python實用操作的詳細內(nèi)容,更多關(guān)于Python操作的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論