Python-错误与异常
异常捕获基本理论1、python 的错误捕获使用 try/except 语法。2、工作方式如下:首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。如果没有异常发生,忽略 except 子句,try 子句执行后结束。如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。3、一个 try 语句可能包含多个 except 子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。4、处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
代码示例数值错误:
12345while True: try: x = int(input("请输入一个数字: ")) except ValueError: print("您输入的不是数字,请再次尝试输入 ...
Python-模块化
模块化基本概念需在另一个源文件里执行 import 语句,js 中为”import {xxx} from ‘xxx’ “,c#中为”using namespace xxx”,python 中为”from xxx import xxx”。需要把引入命令放在脚本的顶端。一个模块只会被导入一次,不管你执行了多少次 import。这样可以防止导入模块被一遍又一遍地执行。模块搜索路径:Python 解释器依次从搜索路径中去寻找所引入的模块,可以通过 sys.path 查看搜索路径。
代码示例1、导入 sys 模块:
1234567import sysprint('命令行参数如下:')for i in sys.argv: print(i)print('\n\nPython 路径为:', sys.path, '\n')
2、导入同目录下某个模块的某个函数或变量目录结构:
123project/ main.py package.py
package.py:
1234def fun1(): passdef fun2() ...
Python-函数
函数基本理论函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号 : 起始,并且缩进。return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
代码展示1234def hello() : print("Hello World!")hello()
参数传值与传址在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变 a 的值,相当于新生成了 a。可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部 ...
Python-迭代器与生成器
迭代器基本理论和js的iterator类似,python的迭代器其实也是实现某个接口或者对象中具有某个方法( _iter_() 与 _next_())就可以被迭代。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。
代码展示字符串,列表或元组对象都可用于创建迭代器:
123456# 我们可以使用iter(可迭代对象)获取它的枚举器list=[1,2,3,4]it = iter(list)print(next(it)) # 1print(next(it)) # 2print(next(it)) # 3
循环语句实际遍历的是迭代器对象,所以可以这么写:
1234list=[1,2,3,4]it = iter(list)for l in it: print(l)
创建一个迭代器把一个类作为一个迭代器使用需要在类中实现两个方法 _iter_() 与 _next_() 。如果你已经了解的面向对象编程,就知道类都有一个构造函数,Python 的构造函数为 _ ...
Python-语句
条件判断match…casePython 3.10 增加了 match…case 的条件判断,不需要再使用一连串的 if-else 来判断了。match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,”_” 可以匹配一切。
12345678value = input()match value: case 10: print('10') case 11: print('11') case _: print('_')
循环语句while…else…如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
123456count = 0while count < 5: print (count, " 小于 5") count = count + 1else: print (count, " 大于或等于 5")
for…else…和while ...
Python-数据类型
基本语法1、输入
1input('请输入一个数字:') # 按下enter后input函数返回值即刚才输入的数据
2、输出
123a=1b='hello'print(a,b) # 输出1 hello
注意:Python不能通过“+”将数字与字符串拼接,你可以用str(10)将数字转为字符串再用“+”拼接3、代码组缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
1234567a=3if a<10: a++elif a>10: a--else: a=10
4、模块化在 python 用 import 或者 from…import 来导入相应的模块。将整个模块(somemodule)导入,格式为: import somemodule从某个模块中导入某个函数,格式为: from somemodule import somefuncti ...
TypeScript-类
类访问级别1、public在TypeScript里,成员都默认为 public。你也可以明确的将一个成员标记成public:
1234567class Animal { public name: string; public constructor(theName: string) { this.name = theName; } public move(distanceInMeters: number) { console.log(`${this.name} moved ${distanceInMeters}m.`); }}
2、private当成员被标记成private时,它就不能在声明它的类的外部访问。比如:
12345class Animal { private name: string; constructor(theName: string) { this.name = theName; } ...
TypeScript-接口
接口接口的简单使用1234567891011121314151617//声明一个Student类,他的构造函数接受一个实现People接口的对象class Student { everyDay:string constructor(people:People){ this.everyDay=`一个学生每天都要${people.eat}和${people.sleep}` }}//声明一个接口interface People{ eat:string, sleep:string}//创建一个实现了该接口的对象let p = {eat:'吃饭',sleep:'睡觉'};//通过该对象对stu进行初始化let stu=new Student(p);console.log(stu.everyDay)
与C#对比在ts中,只要实现了接口属性的对象就可以在需要这个接口的地方使用:
123456789 ...
TypeScript-基本类型
TypeScript为什么要设计 typescriptJavaScript 是一门动态弱类型语言,对变量的类型非常宽容,而且不会在这些变量和它们的调用者间建立结构化的契约。如果你长期在没有类型约束的环境下开发,就会造成“类型思维”的缺失,养成不良的编程习惯,这也是做前端开发的短板之一,因此使用 TypeScript 对于前端开发者而言是迫切并且必要的。使用 TypeScript 还能带来其他好处。比如,Visual Studio Code 具有强大的自动补全、导航和重构功能,这使得接口定义可以直接代替文档,同时也提高了开发效率,降低了维护成本。更重要的是,TypeScript 可以帮助团队重塑“类型思维”,使前端开发者从代码的编写者蜕变为代码的设计者。
初识 TypeScript1、安装 TypeScript
1npm i -g typescript
2、编译 ts 文件先创建一个 test.ts 文件,由于 typescript 需要先编译在运行,我们可以通过以下命令编译。
1tsc test.ts
编译之后会在目录中生成一个 test.js 文件。
ts 类型类型概述ts 有以 ...
微信小程序-分包
分包分包介绍1、概念分包是把一个完整的小程序项目,按需分为不同的子包,在构建打包成不同的分包,用户在使用时按需进行加载。可以优化小程序首次启动的下载时间,在多团队开发时可以更好的解耦协作。分包前,小程序项目中所有的页面和资源都被打包到了一起,导致整个项目体积过大,影响小程序首次启动的下载时间。分包后,小程序由一个主包+多个分包组成。珠宝一般只包含项目的启动页面或TabBar页面,以及所有分包都需要用到的一些公共资源。分包只包含和当前分包有关的页面和私有资源。2、加载规则小程序启动时,默认下载主包,并启动主包内页面,tabBar页面需要放到主包。当用户进入分包内某个页面时,客户端会把对应分包下载下来,完成后再进行展示。3、体积限制所有的分包大小不能超过20M单个分包/主包大小不能超过2M
使用分包1、小程序目录结构:2、在app.json中window平级下使用subpackages节点,具体配置如下app.json:
123456789101112131415"subPackages": [ { "root": &qu ...