Was sind die praktischen Operationen von Python?

王林
Freigeben: 2023-05-04 17:49:07
nach vorne
1626 Leute haben es durchsucht

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

映射代理是创建后无法更改的字典。如果我们不希望用户能够更改我们的值,就可以使用它。

from types import MappingProxyType

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

# {'apple': 4, 'orange': 5}
Nach dem Login kopieren

如果我们尝试更改映射代理中的内容,就会出现错误。

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[&#39;apple&#39;] = 10
    ~~^^^^^^^^^
TypeError: &#39;mappingproxy&#39; object does not support item assignment
&#39;&#39;&#39;
Nach dem Login kopieren

2) dict 对于类和对象是不同的

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

rocky = Dog(&#39;rocky&#39;, 5)

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

print(type(Dog.__dict__)) # <class &#39;mappingproxy&#39;>
print(Dog.__dict__)
# {&#39;__module__&#39;: &#39;__main__&#39;, 
# &#39;__init__&#39;: <function Dog.__init__ at 0x108f587c0>, 
# &#39;__dict__&#39;: <attribute &#39;__dict__&#39; of &#39;Dog&#39; objects>, 
# &#39;__weakref__&#39;: <attribute &#39;__weakref__&#39; of &#39;Dog&#39; objects>, 
# &#39;__doc__&#39;: None}
Nach dem Login kopieren

对象的 dict 属性是普通字典,而类的 dict 属性是映射代理,它们本质上是不可变字典(无法更改)。

3) any() 和 all()

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

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

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

all([True, True, True]) # True
Nach dem Login kopieren

any() 和 all() 函数都接受可迭代对象(例如列表)。

any() 如果至少有一个元素为 True,则返回 True。

all() 只有当所有元素都为 True 时才返回 True。

4) divmod()

内置的divmod()函数可以同时执行//和%运算符。

quotient, remainder = divmod(27, 10)

print(quotient)  # 2
print(remainder) # 7
Nach dem Login kopieren

这里,27 // 10 的值为2,而 27 % 10 的值为7。因此,返回元组2,7。

5) 使用格式化字符串轻松检查变量

name = &#39;rocky&#39;
age = 5

string = f&#39;{name=} {age=}&#39;
print(string)

# name=&#39;rocky&#39; age=5
Nach dem Login kopieren

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

6) 我们可以将浮点数转换为比率

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)
Nach dem Login kopieren

内置的 float.as_integer_ratio() 函数允许我们将浮点数转换为表示分数的元组。但有时它会表现得很奇怪。

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

print(float.as_integer_ratio(0.2))    # (3602879701896397, 18014398509481984)
Nach dem Login kopieren

7) 用globals()和locals()显示现有的全局/本地变量

x = 1
print(globals())

# {&#39;__name__&#39;: &#39;__main__&#39;, &#39;__doc__&#39;: None, ..., &#39;x&#39;: 1}
Nach dem Login kopieren

内置的 globals() 函数返回一个包含所有全局变量及其值的字典。

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

test()

# {&#39;x&#39;: 1, &#39;y&#39;: 2}
Nach dem Login kopieren

内置函数 locals() 返回一个包含所有局部变量及其值的字典。

8) import() 函数

import numpy as np
import pandas as pd
Nach dem Login kopieren

^ 导入模块的常规方式。

np = __import__(&#39;numpy&#39;)
pd = __import__(&#39;pandas&#39;)
Nach dem Login kopieren

^ 这与上面的代码块执行相同的操作。

9) Python中的无限值

a = float(&#39;inf&#39;)
b = float(&#39;-inf&#39;)
Nach dem Login kopieren

^ 我们可以定义正无穷和负无穷。 正无穷大于所有其他数字,而负无穷小于所有其他数字。

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)
Nach dem Login kopieren

Was sind die praktischen Operationen von Python?

11) 我们可以在Python中打印彩色输出

我们需要先安装colorama。

from colorama import Fore

print(Fore.RED + "hello world")
print(Fore.BLUE + "hello world")
print(Fore.GREEN + "hello world")
Nach dem Login kopieren

Was sind die praktischen Operationen von Python?

12) 创建字典的更快方法

d1 = {&#39;apple&#39;:&#39;pie&#39;, &#39;orange&#39;:&#39;juice&#39;, &#39;pear&#39;:&#39;cake&#39;}
Nach dem Login kopieren

^ 正常的方式

d2 = dict(apple=&#39;pie&#39;, orange=&#39;juice&#39;, pear=&#39;cake&#39;)
Nach dem Login kopieren

^更快的方法。这与上面的代码块完全相同,但我们输入较少的引号。

13) 我们可以在Python中取消打印的内容

CURSOR_UP = &#39;\033[1A&#39;
CLEAR = &#39;\x1b[2K&#39;

print(&#39;apple&#39;)
print(&#39;orange&#39;)
print(&#39;pear&#39;)
print((CURSOR_UP + CLEAR)*2, end=&#39;&#39;) # this unprints 2 lines
print(&#39;pineapple&#39;)
Nach dem Login kopieren

Was sind die praktischen Operationen von Python?

14) 对象中的私有变量并不是真正的私有

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

  @property
  def name(self):
    return self.__name
Nach dem Login kopieren

这里,self.__name变量应该是私有的。我们不应该能够从类外部访问它。但实际上我们可以。

rocky = Dog(&#39;rocky&#39;)
print(rocky.__dict__)    # {&#39;_Dog__name&#39;: &#39;rocky&#39;}
Nach dem Login kopieren

我们可以使用 dict 属性来访问或编辑这些属性。

15) 我们可以使用’type()'创建类

classname = type(name, bases, dict)
Nach dem Login kopieren

name 是一个字符串,代表类的名称

bases 是包含类父类的元组

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

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

  def bark(self):
    print(f&#39;Dog({self.name}, {self.age})&#39;)
Nach dem Login kopieren

^ 以正常方式创建一个 Dog 类

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

def bark(self):
  print(f&#39;Dog({self.name}, {self.age})&#39;)

Dog = type(&#39;Dog&#39;, (), {&#39;__init__&#39;:__init__, &#39;bark&#39;:bark})
Nach dem Login kopieren

^ 使用 type() 创建与上面完全相同的 Dog 类

Das obige ist der detaillierte Inhalt vonWas sind die praktischen Operationen von Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!