Python 備忘單

2022-07-01 18:00 更新

Python的備忘單是用于Python 3的編程語言中的單頁參考表。

開始

介紹

Hello World

>>> print("Hello, World!")
Hello, World!

Python 中著名的“Hello World”程序

變量

x = 4        # x is of type int
x = "Sally"  # x is now of type str
print(x)

Python 沒有用于聲明變量的命令。

數(shù)據(jù)類型

str 文本
int, float,complex 數(shù)字
list, tuple,range 序列
dict 映射
set, frozenset 集合
bool 布爾值
bytes, bytearray,memoryview 二進(jìn)制

字符串截?。ㄇ衅?/h3>
>>> b = "Hello, World!"
>>> print(b[2:5])
llo

列表

mylist = []
mylist.append(1)
mylist.append(2)
for x in mylist:
    print(x) # prints out 1,2

判斷語句

a = 200
if a > 0:
    print("a is greater than 0")
else:
    print("a is not greater than 0")

循環(huán)

for x in range(6):
    if x == 3: break
    print(x)
else:
    print("Finally finished!")

函數(shù)

>>> def my_function():
...     print("Hello from a function")
...
>>> my_function()
Hello from a function

文件處理

with open("myfile.txt", "r", encoding='utf8') as file:
    for x in file:
        print(x)

算術(shù)運算符

result = 10 + 30  # =>  40
result = 40 - 10  # =>  30
result = 50 * 5   # =>  250
result = 16 / 4   # =>  4
result = 25 % 2   # =>  1
result = 5 ** 3   # =>  125

加等于

counter = 0
counter += 10           # => 10
counter = 0
counter = counter + 10  # => 10

message = "Part 1."
# => Part 1.Part 2.
message += "Part 2."   

Python 數(shù)據(jù)類型

字符串

s = "Hello World"
s = 'Hello World'

a = """Multiline Strings
Lorem ipsum dolor sit amet,
consectetur adipiscing elit """

數(shù)字

x = 1    # int
y = 2.8  # float
z = 1j   # complex

>>> print(type(x))
<class 'int'>

布爾值

a = True 
b = False

bool(0)     # => False
bool(1)     # => True

列表

list1 = ["apple", "banana", "cherry"]
list2 = [True, False, False]
list3 = [1, 5, 7, 9, 3]
list4 = list((1, 5, 7, 9, 3))

元組

a = (1, 2, 3)
a = tuple((1, 2, 3))

類似于 List 但不可變

集合

set1 = {"a", "b", "c"}   
set2 = set(("a", "b", "c"))

一組獨特的項目/對象

字典

>>> empty_dict = {}
>>> a = {"one": 1, "two": 2, "three": 3}
>>> a["one"]
1
>>> a.keys()
dict_keys(['one', 'two', 'three'])
>>> a.values()
dict_values([1, 2, 3])
>>> a.update({"four": 4})
>>> a.keys()
dict_keys(['one', 'two', 'three', 'four'])
>>> a['four']
4

鍵 : 值(key : value)對,類JSON對象

賦值

整型

x = int(1)   # x will be 1
y = int(2.8) # y will be 2
z = int("3") # z will be 3

浮點型

x = float(1)     # x will be 1.0
y = float(2.8)   # y will be 2.8
z = float("3")   # z will be 3.0
w = float("4.2") # w will be 4.2

字符串

x = str("s1") # x will be 's1'
y = str(2)    # y will be '2'
z = str(3.0)  # z will be '3.0'

Python 字符串

類似數(shù)組

>>> a = "Hello, World"
>>> print(a[1])
e
>>> print(a[len(a)-1])
d

獲取索引為 1 處的字符(大多數(shù)的編程語言,默認(rèn)的索引都是從 0 開始。因此,索引為 1 ,代表列表中第 2 位的內(nèi)容)

循環(huán)

>>> for x in "abc":
...     print(x)
a
b
c

循環(huán)遍歷單詞“abc”中的字母

字符串切片

 ┌───┬───┬───┬───┬───┬───┬───┐
 | m | y | b | a | c | o | n |
 └───┴───┴───┴───┴───┴───┴───┘
 0   1   2   3   4   5   6   7
-7  -6  -5  -4  -3  -2  -1

>>> s = 'mybacon'
>>> s[2:5]
'bac'
>>> s[0:2]
'my'
>>> s = 'mybacon'
>>> s[:2]
'my'
>>> s[2:]
'bacon'
>>> s[:2] + s[2:]
'mybacon'
>>> s[:]
'mybacon'
>>> s = 'mybacon'
>>> s[-5:-1]
'baco'
>>> s[2:6]
'baco'

切片方式

>>> s = '12345' * 5
>>> s
'1234512345123451234512345'
>>> s[::5]
'11111'
>>> s[4::5]
'55555'
>>> s[::-5]
'55555'
>>> s[::-1]
'5432154321543215432154321'

字符串長度

>>> a = "Hello, World!"
>>> print(len(a))
13

len() 函數(shù)返回字符串的長度

多次復(fù)制

>>> s = '===+'
>>> n = 8
>>> s * n
'===+===+===+===+===+===+===+===+'

檢查字符串

>>> s = 'spam'
>>> s in 'I saw spamalot!'
True
>>> s not in 'I saw The Holy Grail!'
True

連接

>>> s = 'spam'
>>> t = 'egg'
>>> s + t
'spamegg'
>>> 'spam' 'egg'
'spamegg'

格式化

name = "John"
print("Hello, %s!" % name)
name = "John"
age = 23
print("%s is %d years old." % (name, age))

format() 方法

txt1 = "My name is {fname}, I'm {age}".format(fname = "John", age = 36)
txt2 = "My name is {0}, I'm {1}".format("John",36)
txt3 = "My name is {}, I'm {}".format("John",36)

input

>>> name = input("Enter your name: ")
Enter your name: Tom
>>> name
'Tom'

從控制臺獲取輸入數(shù)據(jù)

join

>>> "#".join(["John", "Peter", "Vicky"])
'John#Peter#Vicky'

endswith

>>> "Hello, world!".endswith("!")
True

Python 列表

定義

>>> li1 = []
>>> li1
[]
>>> li2 = [4, 5, 6]
>>> li2
[4, 5, 6]
>>> li3 = list((1, 2, 3))
>>> li3
[1, 2, 3]
>>> li4 = list(range(1, 11))
>>> li4
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

生成

>>> list(filter(lambda x : x % 2 == 1, range(1, 20)))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

>>> [x ** 2 for x in range (1, 11) if  x % 2 == 1]
[1, 9, 25, 49, 81]

>>> [x for x in [3, 4, 5, 6, 7] if x > 5]
[6, 7]

>>> list(filter(lambda x: x > 5, [3, 4, 5, 6, 7]))
[6, 7]

append

>>> li = []
>>> li.append(1)
>>> li
[1]
>>> li.append(2)
>>> li
[1, 2]
>>> li.append(4)
>>> li
[1, 2, 4]
>>> li.append(3)
>>> li
[1, 2, 4, 3]

列表切片

列表切片的語法:

a_list[start:end]
a_list[start:end:step]

切片

>>> a = ['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[2:5]
['bacon', 'tomato', 'ham']
>>> a[-5:-2]
['egg', 'bacon', 'tomato']
>>> a[1:4]
['egg', 'bacon', 'tomato']

省略索引

>>> a[:4]
['spam', 'egg', 'bacon', 'tomato']
>>> a[0:4]
['spam', 'egg', 'bacon', 'tomato']
>>> a[2:]
['bacon', 'tomato', 'ham', 'lobster']
>>> a[2:len(a)]
['bacon', 'tomato', 'ham', 'lobster']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[:]
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']

切片方式

['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[0:6:2]
['spam', 'bacon', 'ham']
>>> a[1:6:2]
['egg', 'tomato', 'lobster']
>>> a[6:0:-2]
['lobster', 'tomato', 'egg']
>>> a
['spam', 'egg', 'bacon', 'tomato', 'ham', 'lobster']
>>> a[::-1]
['lobster', 'ham', 'tomato', 'bacon', 'egg', 'spam']

pop

>>> li = ['bread', 'butter', 'milk']
>>> li.pop()
'milk'
>>> li
['bread', 'butter']
>>> del li[0]
>>> li
['butter']

使用權(quán)

>>> li = ['a', 'b', 'c', 'd']
>>> li[0]
'a'
>>> li[-1]
'd'
>>> li[4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

串聯(lián)

>>> odd = [1, 3, 5]
>>> odd.extend([9, 11, 13])
>>> odd
[1, 3, 5, 9, 11, 13]
>>> odd = [1, 3, 5]
>>> odd + [9, 11, 13]
[1, 3, 5, 9, 11, 13]

排序和反轉(zhuǎn)

>>> li = [3, 1, 3, 2, 5]
>>> li.sort()
>>> li
[1, 2, 3, 3, 5]
>>> li.reverse()
>>> li
[5, 3, 3, 2, 1]

計數(shù)

>>> li = [3, 1, 3, 2, 5]
>>> li.count(3)
2

重復(fù)

>>> li = ["re"] * 3
>>> li
['re', 're', 're']

Python 流控制

基本的

a = 5
if a > 10:
    print("a is totally bigger than 10.")
elif a < 10:
    print("a is smaller than 10.")
else:
    print("a is indeed 10.")

一行代碼

>>> a = 330
>>> b = 200
>>> r = "a" if a > b else "b"
>>> print(r)
a

if-elif-else

value = True
if not value:
    print("Value is False")
elif value is None:
    print("Value is None")
else:
    print("Value is True")

Python 循環(huán)

基本的

primes = [2, 3, 5, 7]
for prime in primes:
    print(prime)

帶索引

animals = ["dog", "cat", "mouse"]
for i, value in enumerate(animals):
    print(i, value)

while

x = 0
while x < 4:
    print(x)
    x += 1  # Shorthand for x = x + 1

break

x = 0
for index in range(10):
    x = index * 10
    if index == 5:
    	break
    print(x)

continue

for index in range(3, 8): 
    x = index * 10
    if index == 5:
    	continue
    print(x)

range 范圍

for i in range(4):
    print(i) # Prints: 0 1 2 3

for i in range(4, 8):
    print(i) # Prints: 4 5 6 7

for i in range(4, 10, 2):
    print(i) # Prints: 4 6 8

zip()

name = ['Pete', 'John', 'Elizabeth']
age = [6, 23, 44]
for n, a in zip(name, age):
    print('%s is %d years old' %(n, a))

列表理解

result = [x**2 for x in range(10) if x % 2 == 0]
 
print(result)
# [0, 4, 16, 36, 64]

Python 函數(shù)

基本的

def hello_world():  
    print('Hello, World!')

return

def add(x, y):
    print("x is %s, y is %s" %(x, y))
    return x + y

add(5, 6)    # => 11

位置參數(shù)

def varargs(*args):
    return args

varargs(1, 2, 3)  # => (1, 2, 3)

關(guān)鍵字參數(shù)

def keyword_args(**kwargs):
    return kwargs

# => {"big": "foot", "loch": "ness"}
keyword_args(big="foot", loch="ness")

返回多個

def swap(x, y):
    return y, x

x = 1
y = 2
x, y = swap(x, y)  # => x = 2, y = 1

默認(rèn)值

def add(x, y=10):
    return x + y

add(5)      # => 15
add(5, 20)  # => 25

匿名函數(shù)

# => True
(lambda x: x > 2)(3)

# => 5
(lambda x, y: x ** 2 + y ** 2)(2, 1)

Python 模塊

導(dǎo)入模塊

import math
print(math.sqrt(16))  # => 4.0

從一個模塊

from math import ceil, floor
print(ceil(3.7))   # => 4.0
print(floor(3.7))  # => 3.0

全部導(dǎo)入

from math import *

縮短模塊

import math as m

# => True
math.sqrt(16) == m.sqrt(16)

功能和屬性

import math
dir(math)

Python 文件處理

讀取文件

逐行

with open("myfile.txt") as file:
    for line in file:
        print(line)

帶行號

input = open('myfile.txt', 'r')
for i,line in enumerate(input, start=1):
    print("Number %s: %s" % (i, line))

String

寫一個字符串

contents = {"aa": 12, "bb": 21}
with open("myfile1.txt", "w+") as file:
    file.write(str(contents))

讀取字符串

with open('myfile1.txt', "r+") as file:
    contents = file.read()
print(contents)

目的

寫一個對象

contents = {"aa": 12, "bb": 21}
with open("myfile2.txt", "w+") as file:
    file.write(json.dumps(contents))

讀取對象

with open('myfile2.txt', "r+") as file:
    contents = json.load(file)
print(contents)

刪除文件

import os
os.remove("myfile.txt")

檢查和刪除

import os
if os.path.exists("myfile.txt"):
    os.remove("myfile.txt")
else:
    print("The file does not exist")

刪除文件夾

import os
os.rmdir("myfolder")

Python 類和繼承

定義

class MyNewClass:
    '''This is a docstring.'''
    pass

# Class Instantiation
my = MyNewClass()

構(gòu)造函數(shù)

class Animal:
    def __init__(self, voice):
    self.voice = voice
 
cat = Animal('Meow')
print(cat.voice)    # => Meow
 
dog = Animal('Woof') 
print(dog.voice)    # => Woof

方法

class Dog:

    # Method of the class
    def bark(self):
    print("Ham-Ham")
 
charlie = Dog()
charlie.bark()   # => "Ham-Ham"

類變量

class my_class:
    class_variable = "A class variable!"
  
x = my_class()
y = my_class()
 
# => A class variable!
print(x.class_variable)

# => A class variable!
print(y.class_variable)

Super() 函數(shù)

class ParentClass:
    def print_test(self):
        print("Parent Method")
 
class ChildClass(ParentClass):
    def print_test(self):
        print("Child Method")
        # Calls the parent's print_test()
        super().print_test() 

>>> child_instance = ChildClass()
>>> child_instance.print_test()
Child Method
Parent Method

repr() 方法

class Employee:
    def __init__(self, name):
        self.name = name
 
    def __repr__(self):
        return self.name
 
john = Employee('John')
print(john)  # => John

用戶定義的異常

class CustomError(Exception):
    pass

多態(tài)性

class ParentClass:
    def print_self(self):
        print('A')
 
class ChildClass(ParentClass):
    def print_self(self):
        print('B')
 
obj_A = ParentClass()
obj_B = ChildClass()
 
obj_A.print_self() # => A
obj_B.print_self() # => B

覆蓋

class ParentClass:
    def print_self(self):
        print("Parent")
 
class ChildClass(ParentClass):
    def print_self(self):
        print("Child")
 
child_instance = ChildClass()
child_instance.print_self() # => Child

繼承

class Animal: 
    def __init__(self, name, legs):
        self.name = name
        self.legs = legs
        
class Dog(Animal):
    def sound(self):
        print("Woof!")
 
Yoki = Dog("Yoki", 4)
print(Yoki.name) # => YOKI
print(Yoki.legs) # => 4
Yoki.sound()     # => Woof!

其他

注釋

# This is a single line comments.
""" Multiline strings can be written
    using three "s, and are often used
    as documentation.
"""
''' Multiline strings can be written
    using three 's, and are often used
    as documentation.
'''

生成器

def double_numbers(iterable):
    for i in iterable:
        yield i + i

生成器可以幫助您編寫懶惰的代碼。

要列出的生成器

values = (-x for x in [1,2,3,4,5])
gen_to_list = list(values)

# => [-1, -2, -3, -4, -5]
print(gen_to_list)

處理異常

try:
    # Use "raise" to raise an error
    raise IndexError("This is an index error")
except IndexError as e:
    pass                 # Pass is just a no-op. Usually you would do recovery here.
except (TypeError, NameError):
    pass                 # Multiple exceptions can be handled together, if required.
else:                    # Optional clause to the try/except block. Must follow all except blocks
    print("All good!")   # Runs only if the code in try raises no exceptions
finally:                 # Execute under all circumstances
    print("We can clean up resources here")


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號