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 ...
微信小程序-npm与数据共享
使用npm小程序使用npm有一些限制:1、不支持依赖于nodejs内置库的包2、不支持依赖于浏览器内置对象的包3、不支持依赖于C++插件的包
Vant Weapp有赞前端团队开源的小程序UI组件库,使用MIT开源许可协议。1、npm i @vant/weapp -S –production2、将 app.json 中的 “style”: “v2” 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。3、开发者工具创建的项目,miniprogramRoot 默认为 miniprogram,package.json 在其外部,npm 构建无法正常工作。需要手动在 project.config.json 内添加如下配置,使开发者工具可以正确索引到 npm 依赖的位置。
12345678910111213{ ... "setting": { ... "packNpmManually": true, "packNpmRelationList": [ ...
微信小程序-组件通信
插槽在自定义组件中可以使用<slot>节点,用于承载组件使用者提供的wxml结构
默认插槽自定义组件.wxml:
1234<view><view>默认插槽:</view><view><slot></slot></view></view>
父组件.wxml:
123<test1><text>你好</text></test1>
具名插槽1、插槽默认不支持多个,如果想有多个插槽需要在自定义组件Component配置对象的options属性中配置”multipleSlots”:true。2、自定义组件的<slot>标签指定name。3、组件使用者通过slot属性,选择插入内容对应的插槽。(与vue不同,不用包在template中)自定义组件.js:
12345Component({ options:{ multipleSlots:true }})
自定义组件.wxml:
1234 ...














