PyNotes
250 subscribers
125 photos
7 videos
1 file
61 links
**Code is communication**
admin: @Xojarbu
https://t.iss.one/solutions_py for problem solutions
Download Telegram
Collections module

Counter
(string sample)
Sort dictionary sample
#Some_JWT_Notes
The access token is usually short-lived (expires in 5 min or so, can be customized though).

The refresh token lives a little bit longer (expires in 24 hours, also customizable). It is comparable to an authentication session. After it expires, you need a full login with username + password again.

Source
Instead of this
names = ['Alice', 'Bob', 'Dilbert']
Use:
>>> names = [
... 'Alice',
... 'Bob',
... 'Dilbert',
... ]

That way there’s one item per line, making it perfectly clear which one was added, removed, or modified when you view a diff in your source control system. It’s a small change but helpful to avoid silly mistakes. It also easier for your teammates to review your code changes.

#Source "Python Tricks" by Dan Bader
#not_secure
f = open('hello.txt', 'w')
f.write('hello, world')
f.close()

This implementation won’t guarantee the file is closed if there’s an exception during the f.write() call

#Secure
with open('hello.txt', 'w') as f: f.write('hello, world!')
Context Managers
#not_secure
f = open('hello.txt', 'w')
f.write('hello, world')
f.close()

This implementation won’t guarantee the file is closed if there’s an exception during the f.write() call

#Secure
with open('hello.txt', 'w') as f:
f.write('hello, world!')

Behind the scenes context manager is implementing the following:
f = open('hello.txt', 'w')
try:
f.write('hello, world')
finally:
f.close()

#Source "Python Tricks" by Dan Bader
Single Leading Underscore:
_var is a hint to tell another programmer that a variable or method starting with a single underscore is intended for internal use.

!!!Note: if you import all the names from the module, Python will not import names with a leading underscore(unless the module defines an all list that overrides this behavior)

#Source "Python Tricks" by Dan Bader
What are dunders?

In the python community Dunders are double underscores.
For example, you’d pronounce __baz as “dunder baz.”
PUT with PATCH
PUT is idempotent, while PATCH is not.

What does idempotent mean?

It means that any number of repeated, identical requests will leave the resource in the same state. 
or
Idempotent operations produce the same result even when the operation is repeated many times. The result of the 2nd, 3rd, and 1,000th repeat of the operation will return exactly the same result as the 1st time.

common idempotent methods: GET, HEAD, PUT, DELETE, OPTIONS, TRACE
common non-idempotent methods: POST,PATCH, CONNECT
#functions
Function notes
Python adds an implicit return None statement to the end of any function. Therefore, if a function doesn’t specify a return value, it re- turns None by default. you can replace return None statements with bare


#Source "Python Tricks" by Dan Bader
#object_comparisons
“is” vs “==”
there are actually two dunder methods that control how objects are converted to strings in Python 3.
__str__ is one of Python’s “dunder” (double-underscore) methods and gets called when you try to convert an object into a string

Inspecting an object in a Python inter-
preter session simply prints the result of the object’s __repr__ .

Why Every Class Needs a __repr__
If
you don’t add a str method, Python falls back on the result
of __repr__ when looking for __str__ .
ASCII stands for American Standard Code for Information Interchange. Computers can only understand numbers, so an ASCII code is the numerical representation of a character such as 'a' or '@' or an action of some sort.
Title: Object copying
#Source "Python Tricks" by Dan Bader
Namedtuples sample

Namedtuples are immutable containers, just like regular
tuples. All attributes on a
namedtuple object follow the “write once, read many” principle.

namedtuple is also immutable as tuples.
#Deque
A deque
(double-ended queue), from collections library, has the feature of adding and removing elements from either end(source). It is preferred over list in the cases where we need quicker append and pop operations from both the ends of container, as deque provides an O(1) time complexity for append and pop operations as compared to list which provides O(n) time complexity (source).
#Deque_continue
deque(maxlen=N) creates a fixed-sized queue. When new items are added and the queue is full, the oldest item is automatically removed. (Source: "Python Cookbook")
#SubArray, #SubSequence, #SubSet

Comparing SubArray SubSequence and SubSet

Subarray
is contiguous sequence in an array.
e.g we have an array of {1, 2, 3, 4}
subarray can be: {1,2,3}, {2,3,4}, {1,2} etc.

A subsequence doesn't need to be contiguous, but maintains order
e.g subsequence can be: {1, 2, 4} {2, 4} {1, 3, 4} etc.

A subset doesn’t need to maintain order and has non-contiguous behavior.
e.g subset can be: {4, 1,3} {3, 1, 2 } etc.