1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# 本文目的:总览 Python 的主要语法,并供日后备忘。 # 阅读指南:本文不是文档。通过通读本文,可以了解 Python 基本的语法及一些常用的方法。读者可以将其与其他语言比较,理解其意图与含义。 # 目标读者:具有程序设计基础知识,理解面向对象程序设计基本概念的程序员。 # 若使用 Python 2.X,需设定字符编码以支持中文字符 # -*- coding: UTF-8 -*- # coding=utf-8 # 模块导入 from math import pi, sqrt # 同时导入多个模块 from re import match as re_match # 重命名 # 类的定义与继承 class Animal: __character = "Positive" # 不会经过 "from module_name import *" 导入 _gender = "Unknown" # 仅表示建议不访问 """ 文档注释,将在运行时输出 """ def __init__(self, name, age): self.name = name self.age = age def shout(self): # 定义类的方法 print("Sound") def live(self): print("Alive!") def train(behavior): # 修饰器 def wrap(): behavior() return wrap @property # 属性,常用于实现只读特性 def gender(self): return self._gender @gender.setter # 实现属性的赋值 def gender(self, value): if value: self._gender = value else: print("Gender not set") class Wolf(Animal): # 继承于 Animal 类 def shout(self, default = "Woof!", *sounds, **tones): print(default) if len(sounds) > 0: print(sounds[0]) print(tones) # {'key':value,} def bite(self): print("Bite!") class Dog(Wolf): def shout(self): print("Woo") def bite(self): print("Bite?") super().shout() def __add__(self, other): # 改写 + 运算符。其他运算符也可以类似形式改写 return Dog(self.name + " and " + other.name, self.age + other.age) def __special_behavior(self): # 该方法不会经过 "from module_name import *" 导入 print("Read books!") @classmethod # 定义类方法 def find_a_puppy(cls, name): return cls(name, 0) @staticmethod # 定义静态方法 def find(times) print((self.name + "!") * 3) @train def run(): print("train running") # 访问类 puppy = Dog("Puppy", 5) print(puppy.age) # 5 puppy.live() # Alive! puppy.shout() # Woo puppy.bite() # Bite? Woof! print(_Animal__character) # Positive # 数组相关 def add_one(x): return x + 1 nums = [1,2,3] result_map = list(map(add_one,nums)) # [2,3,4] result_filter = list(filter(lambda x:x%2==0,nums)) # [1,3] nums[0:2:1] # [1,2,3] nums[1:-1] # [2,3] first = nums[0] print(list(range(3))) # [0,1,2] # Generator 与循环 def infinitive_loop(): i = 1 while True: yield i if True: i += 1 elif False: i = 0 else i = 1 for i in infinitive_loop(): print(i) # 1 2 3... if False: break else: print("finished without break") # 集合 num_set = {1,2,3} print(3 in num_set) # True # 字典 age_dictionary = {"Alice":17, "Bob":18} print(age_dictionary["Alice"] # 多元组 immutable_tuple = ("A","B") # tuple 始终无法被更改 simple_tuple = 1,2,3 a,b = immutable_tuple a, *b, c = [1,2,3,4] # a 为 1, b 为 [2,3],c 为 4 b = 5 if a == 2 else 3 # b 为 3 # 字符串格式 string_format_sample = "String: {0} {1} {x}".format("A","B",x="C") # 异常处理 try: print(1/0) assert (2 + 2 == 6), "wrong answer" # AssertionError:wrong answer with open("file.txt") as f: print(f.read()) file = open(file.txt) print("A" * 3) # AAA n = int("9") except ZeroDivisionError: print("Devided by zero" except (ValueError, TypeError): print("Error") finally: file.close() print("Finally") raise input("Enter a number: ") if __name__=="__main__": print("Won't be printed if it is imported") |