author |PADHMA compile |VK source |Analytics Vidhya
Like the famous writer Wayne •W• What Dell said ,
Change the way you look at things What you see will also change
When Python When the new version of the , Many people worry about backward compatibility and other issues . But if you like Python, You will be excited about the features released in the new update .
Python The latest version of will be on 2020 year 10 month 5 Japan （ Monday ） Release . This article provides you with a python3.9 List of features , You can now try these features .
Let's first update to python A new version of the . If you're not sure what version you're using , Please use the following code to check the current version .
stay cmd in , type
To update your version , Please go to Python The download page , Get the installation package and start installing . Be careful ： Make sure to update the path in the environment variable .
Now we have the latest version , It's time to check what's new .
The dictionary is Python One of the most useful and commonly used data structures in . The new version optimizes the way dictionaries are merged and updated .
Suppose we have two dictionaries dict1 and dict2,
dict1 Contains the name and model of the car , and dict2 Including the engine and the weight .
Now we want to merge the two dictionaries , Because they contain information about the same car . stay python3.8 And earlier , To merge two dictionaries , We can use
built-in update Method ：
Or expressions **：
This can sometimes cause inconvenience and trouble .
stay Python3.9.0 in , We use | union Operators improve the syntax , To merge two dict,
It's very clean 、 concise 、 frank . It also improves the readability of the code .
If two dictionaries have a common key , Then the values in the second dictionary will be preserved .
In order to be in Python3.8 Or in earlier versions, update existing dictionaries with new key value pairs , We can
Use update Method ,
Or use iterable to update ,
stay 3.9 in , We have now update The operator |= It does the same thing in a simpler way .
ad locum ,|= It works like an extended assignment operator .
dict1 |=dict2 Express dict1=dict1 | dict2
Under normal circumstances , We're not here Python The data type specified in the . But in some cases , We may need a variable to represent a certain type . under these circumstances ,Python The flexibility of can be annoying . from Python3.5 Start , We can specify the type , But this update makes things easier .
under these circumstances , The type of value passed to the function is very important . Although there are no errors in the code , But passing a string repeats the same string twice .
In the latest version , Prompt by type （type hinting） We can specify the expected type as int,
str Two new features have been added to the object . In the process of exploratory data analysis , This feature can be useful sometimes .
Remove prefix from function
Remove suffix from string
The existing mathematical functions are modified . In previous releases , Calculation GCD The function of takes only two numbers . But now , It can be applied to any number of values .
A new function has been added to the math module to calculate LCM. And GCD The function is the same ,LCM Function also accepts any number of values .
This math.nextafter() Function acceptance x and y Two parameters .python3.9 This feature of is a function , Considering the precision of floating point numbers , It is x towards y The next floating-point number of .
Suppose we don't have 64 Bit computer . contrary , We only have 3 Digit number . With these three numbers, we can express something like 3.14 Numbers like this , But it doesn't mean 3.141. about 3.14, The closest large number we can express is 3.15, The difference between the two figures is 1 ULP( The last unit ), namely 0.1. The return value is equivalent to this example , But the same accuracy as your computer does .
Learn more about ULP, Please check out ：https://matthew-brett.github.io/teaching/floating_error.html
It's not so much a feature , It's more of a repair . When Python When the imported version is inconsistent , An early import version of it appeared Inconsistent mistakes .
builtins.__import__() trigger ValueError importlib.__import__() trigger ImportError
__import__() Now trigger ImportError instead of ValueError, It makes more sense .
random A module called randbytes To generate random bytes .Python You can pass 3 Different functions generate random bytes
But they don't produce pseudo-random patterns .
This random.random.randbytes Functions can generate random bytes in a controlled manner , And you can copy the results by setting the seed . however , It can only be used when security is not important .
In the time zone Library zoneinfo A new support has been introduced in IANA Time zone module .
Consider an example of converting Indian standard time to Delhi's current time . stay 3.9 Before , We will pass pip install pytz,
about zoneinfo modular , It's very direct . You can import ZoneInfo class .
besides , We now have new high performance based on PEG The parser 、Graphlib modular 、 Asynchronous and multiprocessing improvements 、HTTP The status code and a bunch of redundant features are removed . Learn more about ：https://docs.python.org/3.9/whatsnew/3.9.html
Link to the original text ：https://www.analyticsvidhya.com/blog/2020/10/7-exciting-python-3-9-feature-to-know/
Welcome to join us AI Blog station ： http://panchuang.net/
sklearn Machine learning Chinese official documents ： http://sklearn123.com/
Welcome to pay attention to pan Chuang blog resource summary station ： http://docs.panchuang.net/