Variables
a = 1 # integer b = 1.1 # float c = 1 + 2j # complex number (a + bi) d = 'a' # string e = True # boolean (True / False)
Strings
x = "Python" len(x) x[0] x[-1] x[0:3] # Formatted strings name = f"{first} {last}" # Escape sequences \” \’ \\ \n # String methods x.upper() x.lower() x.title() x.strip() x.find(“p”) x.replace(“a”, “b”) “a” in x
Type Conversion
int(x) float(x) bool(x) string(x)
False Values
0 "" []
False
Conditional Statements
if x == 1: print(“a”) elif x == 2: print(“b”) else: print(“c”) # Ternary operator x = "a" if n > 1 else "b" # x = n > 1 ? "a" : "b" # C++
# Chaining comparison operators if 18 <= age < 65:
Loops
for n in range(1, 10): print(n) while n < 10: print(n) n += 1
Functions
def increment(number, by=1): return number + by # Keyword arguments increment(2, by=1) # ok
increment(2, 1) # okincrement(2, b=1) # ERR TypeError: increment() got an unexpected keyword argument 'b'' # Variable number of arguments def multiply(*numbers): for number in numbers: print number multiply(1, 2, 3, 4) # Variable number of keyword arguments def save_user(**user): ... save_user(id=1, name="Mosh")
Lists
# Creating lists letters = ["a", "b", "c"] matrix = [[0, 1], [1, 2]] zeros = [0] * 5 combined = zeros + letters numbers = list(range(20)) # Accessing items letters = ["a", "b", "c", "d"] letters[0] # "a" letters[-1] # "d" # Slicing lists letters[0:3] # "a", "b", "c" letters[:3] # "a", "b", "c" letters[0:] # "a", "b", "c", "d" letters[:] # "a", "b", "c", "d" letters[::2] # "a", "c" letters[::-1] # "d", "c", "b", "a" # Unpacking first, second, *other = letters # Looping over lists for letter in letters: ... for index, letter in enumerate(letters): ... # Adding items letters.append("e") letters.insert(0, "-") # Removing items letters.pop() letters.pop(0) letters.remove("b") del letters[0:3] # Finding items if "f" in letters: letters.index("f") # Sorting lists letters.sort() letters.sort(reverse=True) x=[3,1,2]; sorted(x) # output:[1,2,3]; but x is unchanged # Custom sorting items = [ ("Product1", 10), ("Product2", 9), ("Product3", 11) ] items.sort(key=lambda item: item[1]) #sort(items.begin(), items.end(), [](auto& a, auto& b){return a[1] < b[1];}); #C++ # Map and filter prices = list(map(lambda item: item[1], items)) expensive_items = list(filter(lambda item: item[1] >= 10, items)) # List comprehensions prices = [item[1] for item in items] expensive_items = [item for item in items if item[1] >= 10] # Zip function list1 = [1, 2, 3] list2 = [10, 20, 30] combined = list(zip(list1, list2)) # [(1, 10), (2, 20)]
Tuples
point = (1, 2, 3) point(0:2) # (1, 2) x, y, z = point if 10 in point: ... # Swapping variables x = 10 y = 11 x, y = y, x
Arrays
from array import array numbers = array("i", [1, 2, 3])
Sets
first = {1, 2, 3, 4} second = {1, 5} first | second # {1, 2, 3, 4, 5} first & second # {1} first - second # {2, 3, 4} first ^ second # {2, 3, 4, 5} if 1 in first: ...
Dictionaries
point = {"x": 1, "y": 2} point = dict(x=1, y=2) point["z"] = 3 if "a" in point: ... point.get("a", 0) # 0 del point["x"] for key, value in point.items(): ... # Dictionary comprehensions values = {x: x * 2 for x in range(5)}
Generator Expressions
values = (x * 2 for x in range(10000)) len(values) # Error for x in values:
Unpacking Operator
first = [1, 2, 3] second = [4, 5, 6] combined = [*first, "a", *second] first = {"x": 1} second = {"y": 2} combined = {**first, **second}
Exceptions
# Handling Exceptions try: … except (ValueError, ZeroDivisionError): … else: # no exceptions raised finally: # cleanup code # Raising exceptions if x < 1: raise ValueError(“…”) # The with statement with open(“file.txt”) as file: …
Classes
# Creating classes class Point: def __init__(self, x, y): self.x = x self.y = y def draw(self): … # Instance vs class attributes class Point: default_color = “red” def __init__(self, x, y): self.x = x # Instance vs class methods class Point: def draw(self): … @classmethod def zero(cls): return cls(0, 0) # Magic methods __str__() __eq__() __cmp__() ... # Private members class Point: def __init__(self, x): self.__x = x # Properties class Point: def __init__(self, x): self.__x = x @property def x(self): return self.__x @property.setter: def x.setter(self, value): self.__x = value # Inheritance class FileStream(Stream): def open(self): super().open() … # Multiple inheritance class FlyingFish(Flyer, Swimmer): … # Abstract base classes from abc import ABC, abstractmethod class Stream(ABC): @abstractmethod def read(self): pass # Named tuples from collections import namedtuple Point = namedtuple(“Point”, [“x”, “y”]) point = Point(x=1, y=2)
Reference:
No comments:
Post a Comment