# mypython **Repository Path**: xfanonymous/mypython ## Basic Information - **Project Name**: mypython - **Description**: python。。。。。。。。。。。。。。。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-24 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mypython - Python是解释型语言,关键字都是小写,有33个保留字 - 通过缩进定义模块,不使用{} - 同代码块语句要使用相同缩进空白数 - 4个空格或1个tab,不能混用 ## 01_print_and_input 输入输出 - 命令 `python ./notes/01_print_and_input/HelloWorld.py` 可以运行.py脚本文件 - 多行语句通过右斜线拼接 \ - 多行注释用三引号拼接 ### print_base.py - `print()` 打印字符、数字,用 `+` 拼接,自带回车换行效果 - 连续打印的多个内容用逗号`,`分隔,打印结果会自动在内容间添加空格 - `sep`:指定打印内容间的分隔符 - `end`:指定打印的结尾符 ### print_format.py - 格式化打印: `%d` 数字,`%s` 字符串,`%f` 浮点数 ### input.py - input() 获取用户输入,默认字符串类型 - type() 打印变量类型 - int() 类型转换,字符转整数 ## 02_param 变量 Python不需要先声明变量类型,赋值后才会被创建。 ### param_define.py - 变量定义不需要声明类型,可以灵活赋不同类型的值 - 整数缓存池保存整数范围: `-5~256` ### param_type.py - 变量数据类型,type()、instance(a, str) - 浮点数,四舍五入 round()、向上取整 math.ceil()、向下取整 math.floor() - 布尔型,大写 True、False - 字符串,字符串和数字不能直接 `+` 要先将int转换 `str(int)`,str[-2]表示倒数第二个字符 - 字符串切片,`str[0:8:2]` 左闭右开,起始索引默认为0,结束索引默认为-1;2表示每两个字符取一个 - 字符串反转,`str2[-1:-10:-1]` 等同于 `str2[::-1]` ### param_type_transform - 类型转换 - int() 转整型 - 字符转整型,必须全部字符是数字字符 - 浮点数转整数,会去掉小数 - 布尔型转整型,对应 1 0 - 进制转换:int('1A', 16),结果为26 - float() 转浮点型 - 字符转浮点型,可以带小数点 - 整型转浮点型,默认带一位小数 - 布尔型转浮点型,默认带一位小数 - bool() 转布尔型 - 字符转布尔型,有内容就真 - 整型转布尔型,0才False ## 03_calculate 运算符 1. 计算运算符, `a // b` 取整去余 2. 比较运算符 3. 逻辑运算符,优先级:`not>and>or` - 短路运算,当前面的逻辑已经可以确认结果,后面的逻辑对结果没有影响时,直接输出前面的逻辑结果 - print((1-1) and 'a') # 输出0 - not 单元运算符,输出True/False 4. 位运算 5. 成员运算符,in、not in 6. 身份运算符,is、is not - is 判断两个引用对象是否为同一个内存空间 - == 比较两个变量的值是否相等 ## 04_if_elif_else_and_match_case 条件 1. if : elif : else : 2. match : case : case_ : ## 05_while_and_for 循环 1. while : if : continue if : break 2. for in range(3): - for in: else: 在没有break的情况下执行 else - range(a, b) 默认从0到b-1,指定从 a到b-1 3. break 4. continue 5. pass,空语句 ## 06_collection 集合 - len() - max() - min() - del ### range 1. range(start, end, [step=1]) 等差序列[start, end)左闭右开,start默认0 ### list 列表 1. 列表元素不区分数据类型 2. `list(str)` 实现字符串转字符列表 3. 成员运算,通过下标获取对应字符 - `list[-1]` 循环获取到最后一个字符 - `list[1:6:2]` 切片,每两个字符取一个字符,下标 1 到 6 4. 内置函数 - len(list) 长度 - max/min(list) 最大/小 - del list[0] 删除指定元素 5. 遍历 for i in list - enumerate() 用于遍历时同时获取索引和元素,返回 (index, value) 元组 6. list方法 - list.append() 拼接元素 - list.extend() 拼接列表 - list.insert(index, obj) 插入元素 - list.pop(index) 通过下标删除元素 - list.remove(value) 通过元素值删除元素,重复值只删除第一个元素 - list1.clear() 清空列表 - list.count(value) 元素个数 - list.reverse() 翻转列表,修改list对象本身 7. 栈 - list.pop() 弹出栈顶 - list.append(value) 压入栈 8. 队列 - from collections import deque - deque(list1) ### tuple 元组 1. 元组,只读列表,不能增删改,tuple = (123, 'fan'),不能执行 tuple[0] = 321 2. 通用方法:max、[index] 3. 元组方法只有 index(value)、count(value) 4. for index,value in enumerate(tuple1)、for i in range(len(tuple1)) ### str 字符串 - 单引号 - 方法 - str.islower() - str.isupper() - str.isdigit() - str.strip() 去除首尾空格 - str.lstrip() - str.rstrip() - str.split(' ') - str.find('o') - str.upper() ### dict 字典 1. 键值对,大括号定义,键唯一,键重复时,会覆盖之前的值 - `dict = {}` - `dict['one'] = "1"` - `dict = {'name':'fan', 'date':''20250808'}` 2. 方法 - d['age'] - 'age' in d - d.pop('age') 删除指定元素 - d.popitem() 删除最后的元素 - for i in d: - for k, v in d.items(): ### set 集合 1. 无重复元素 2. 无序 3. 方法 - s.remove() ### iterator 迭代器 1. 遍历集合元素 2. iter(list) 3. next(it) 4. 结束迭代:raise StopIteration 异常,防止异常死循环 ## 07_exception 异常 1. try: except [else:] 没有异常时执行 [finally:] 总会执行 2. raise Exception() 主动抛出异常 ## 08_function 函数 关键字 def + 函数名 func + 入参 ### def 函数定义 1. 定义函数时,可设置入参默认值 2. 调用函数时,可指定赋值 3. 可变参数 - 函数入参加前缀`*`,可以传入list,tuple类型; 调用时,入参为list类型要使用前缀`*` - 函数入参前缀`**`,可以传入dict类型参数;调用时,入参为dict类型要使用前缀`**` ### lambda 匿名函数 1. 匿名函数,lambda 替换 def,变为一个表达式 - `lambda arg1 [,arg2, arg3 ...] : expression ` - `lambda inputX, inputY : outputX + outputY` - 不能访问参数列表外的参数,不能访问全局命名空间的参数 2. `map(func, num)` 内置函数,将num的每个元素都执行一次func 3. reduce 累积 - 从 functools 导入,`from functools import reduce` - `reduce(lambda x, y: x + y, num)` 将num元素取出,按表达式做 *=、+=等操作 4. filter 过滤 - `filter(lambda x: x % 2 == 0, num)` # 过滤偶数 ### variable 变量 - 全局变量,函数内调用 - 不可变对象类型:`str、tuple、int`;函数内通过 `global` 指定全局变量才可改变 - 可变对象类型:`list、dict`;函数内调用会直接修改对象的值 ## 09_module_and_package 模块和包 ### import 和 from import 自定义模块 ``` 自定义模块演示: my_module.py (定义模块) ↓ module.py (导入: import my_module) ``` 1. `my_module.py` 作为被调用方,定义方法 2. `module.py` 作为调用方,`import my_module` 调用 my_module.py 定义的方法 3. `from my_module import author` 导入指定的方法或变量 4. `from my_module import *` 导入全部内容 ### package 自定义包 ``` 自定义包演示: my_package/my_math.py (定义模块) ↓ package.py (导入: from my_package import my_math) ``` 1. 新建`Python Package` 名 my_package 2. 创建 my_math.py 定义数学运算方法 3. 创建 `__init__.py` - 空文件,标识这是一个 Python package包,可以被 import 导入 - 可以在其中编写包级别的初始化代码 - 可以定义 __all__ 列表来控制 from my_package import * 时导出的内容 4. 在 package.py 通过 `from my_package import my_math` 导入指定包的指定模块 ### python标准库 - `random_and_re.py` - random.random() 随机小数 - random.randint(1, 200) 随机整数,范围[1,200] - random.choice([1, 2, 3]) 随机元素 - chr(random.choice([65, 122])) 随机字母 - re.match(r'\d', '123hi35r432') 正则表达式匹配 - `time_and_socket.py` - time.time() - time.localtime() - scoket.socket() socket server端 - `socket_client.py` - socket 客户端 ### 三方库 pip - pip list - pip install --upgrade pip - pip config set global.index-url https://mirrors.aliyun.com - pip install xxx ## 10_file 文件 - file_read.py - `import os` 导入python库 - `open(filepath)` 打开文件,指定绝对路径或相对路径 - `f.read()` 读取模式 - r只读、w只写、r+可读可写 - b二进制文件:rb、wb - `f.close()` 关闭文件 - file_write.py - 写文件, - `f.open(,'w',)` w方式打开不存在的文件会新建并写入;打开已有文件会覆盖写入 - `f.open(,'a',)` 追加文件, a方式打开已有文件,自动追加写,不会覆盖已有内容 - file_with.py - with open 自带 close(),无需手动写 - file_csv_rw.py - csv表格文件读写 - import csv - csv.reader(csvfile) - next()读取一行元素,过滤表头 ## 11_object 面向对象 ### my_class.py 类的定义 1. `class`,定义类 2. `object`,默认基类,(object)表示继承自此类 3. `def __init__(self)`,定义构造函数 4. `p1.__dict__`,获取对象所有属性 5. `def` 定义对象属性、对象方法 6. `@classmethod` 声明类方法 7. `@staticmethod` 定义静态方法 ### 类的多态 1. my_extends.py 类的继承,定义时通过 `()` 指定父类,重写父类方法 2. my_multi.py 多态 3. my_packed.py 封装 - 类变量前置下划线 _param 受保护的变量,__param 私有变量 - 装饰器 @property 获取变量,将方法装饰为变量 - 装饰器 @method_name.setter 修改变量,和 @property 成对出现,method_name和@property修饰的方法名一样 4. magic_method.py 魔法方法 - 带前置下划线的方法,如 __init__(self) 构造方法 - python内置方法,如 __str__()、__eq__()、__add__ ## 12_WxPython 三方库界面开发 1. 安装三方库 `pip install wxpython` 2. pip list 查看 3. wxUI.py 通过wxPython绘制窗口 4. window.py 自定义类实现应用窗口 # 快捷键 运行:Shift+F10 终止:Ctrl+C # Reference - [木棉Python2024](https://www.bilibili.com/list/ml3288899246?oid=1151955951) - [ShowMeAI-Python](https://www.showmeai.tech/tutorials/56?articleId=91)