 06 PHP基本语法 — 条件、循环、函数  杨亮 《PHP语⾔程序设计》PHP基本语法 —条件、循环、函数 杨亮 程序的基本结构 输⼊入 输出 程序 运算(+ - x / & | ! …) 逻辑(条件、循环、递归) 辅助(变量、数组、函数) ⼩小测验 ⽤用你熟悉的程序找出 1~1000中的所有质数 我们直接看代码好了 1 函数库,或者代码⽚片段 1 '; 4 ?> 1 函数 • 代码的可读性 • 代码的可重⽤用性 • 实现功能的模块化 • 实现递归调⽤用 • 使变量名不⾄至于太⻓长(作⽤用域) PHP中的函数 $res = my_function($val1, $val2); functon my_function($param10 码力 | 25 页 | 1.30 MB | 1 年前3 06 PHP基本语法 — 条件、循环、函数  杨亮 《PHP语⾔程序设计》PHP基本语法 —条件、循环、函数 杨亮 程序的基本结构 输⼊入 输出 程序 运算(+ - x / & | ! …) 逻辑(条件、循环、递归) 辅助(变量、数组、函数) ⼩小测验 ⽤用你熟悉的程序找出 1~1000中的所有质数 我们直接看代码好了 1 函数库,或者代码⽚片段 1 '; 4 ?> 1 函数 • 代码的可读性 • 代码的可重⽤用性 • 实现功能的模块化 • 实现递归调⽤用 • 使变量名不⾄至于太⻓长(作⽤用域) PHP中的函数 $res = my_function($val1, $val2); functon my_function($param10 码力 | 25 页 | 1.30 MB | 1 年前3
 MoonBit月兔编程语言 现代编程思想 第三课 函数, 列表与递归现代编程思想 函数, 列表与递归 Hongbo Zhang 1 基本数据类型:函数 2 函数 在数学上,描述对应关系的⼀种特殊集合 对于特定的输⼊,总是有特定的输出 在计算机中,对相同运算的抽象,避免⼤量重复定义 计算半径为1的圆的⾯积: 3.1415 * 1 * 1 计算半径为2的圆的⾯积: 3.1415 * 2 * 2 计算半径为3的圆的⾯积: 3.1415 * 3 * * 3 …… fn ⾯积(半径: Double) -> Double { 3.1415 * 半径 * 半径 } 3 函数 计算半径为1、2、3的圆的⾯积: 1. let surface_r_1: Double = { let r = 1.0; pi * r * r } 2. let surface_r_2: Double = { let r = 2.0; pi * r * r } 3. let surface_r_3) 使⽤函数后 1. fn area(radius: Double) -> Double { pi * radius * radius } 2. let result = (area(1.0), area(2.0), area(3.0)) 4 顶层函数的定义 fn <函数名> (<参数名>: <类型>, <参数名>: <类型>, ...) -> <类型> <表达式块> 定义的函数接⼝让其他使⽤者⽆需关注内部实现0 码力 | 42 页 | 587.59 KB | 1 年前3 MoonBit月兔编程语言 现代编程思想 第三课 函数, 列表与递归现代编程思想 函数, 列表与递归 Hongbo Zhang 1 基本数据类型:函数 2 函数 在数学上,描述对应关系的⼀种特殊集合 对于特定的输⼊,总是有特定的输出 在计算机中,对相同运算的抽象,避免⼤量重复定义 计算半径为1的圆的⾯积: 3.1415 * 1 * 1 计算半径为2的圆的⾯积: 3.1415 * 2 * 2 计算半径为3的圆的⾯积: 3.1415 * 3 * * 3 …… fn ⾯积(半径: Double) -> Double { 3.1415 * 半径 * 半径 } 3 函数 计算半径为1、2、3的圆的⾯积: 1. let surface_r_1: Double = { let r = 1.0; pi * r * r } 2. let surface_r_2: Double = { let r = 2.0; pi * r * r } 3. let surface_r_3) 使⽤函数后 1. fn area(radius: Double) -> Double { pi * radius * radius } 2. let result = (area(1.0), area(2.0), area(3.0)) 4 顶层函数的定义 fn <函数名> (<参数名>: <类型>, <参数名>: <类型>, ...) -> <类型> <表达式块> 定义的函数接⼝让其他使⽤者⽆需关注内部实现0 码力 | 42 页 | 587.59 KB | 1 年前3
 MoonBit月兔编程语言 现代编程思想 第六课 泛型与高阶函数现代编程思想 泛型与⾼阶函数 Hongbo Zhang 1 设计良好的抽象 软件⼯程中,我们要设计良好的抽象 当代码多次重复出现 当抽出的逻辑具有合适的语义 编程语⾔为我们提供了各种抽象的⼿段 函数、泛型、⾼阶函数、接⼝…… 2 泛型函数与泛型数据 3 堆栈 栈是⼀个由⼀系列对象组成的⼀个集合,这些对象的插⼊和删除遵循后进先出原则 (Last In First Out) } 12. } 我们希望存储很多很多类型在堆栈中 每个类型都要定义⼀个对应的堆栈吗? IntStack 和 StringStack 似乎结构⼀模⼀样? 7 泛型数据结构与泛型函数 泛型数据结构与泛型函数以类型为参数,构建更抽象的结构 1. enum Stack[T] { 2. Empty 3. NonEmpty(T, Stack[T]) 4. } 5. fn Stack::empty[T]() 泛型数据结构与泛型函数 我们⽤ [<类型1>, <类型2>, ...] 来定义泛型的类型参数 enum Stack[T]{ Empty; NonEmpty(T, Stack[T]) } struct Pair[A, B]{ first: A; second: B } fn identity[A](value: A) { value } Stack 与 Pair 可以看做从类型上的函数:类型构造器0 码力 | 27 页 | 2.56 MB | 1 年前3 MoonBit月兔编程语言 现代编程思想 第六课 泛型与高阶函数现代编程思想 泛型与⾼阶函数 Hongbo Zhang 1 设计良好的抽象 软件⼯程中,我们要设计良好的抽象 当代码多次重复出现 当抽出的逻辑具有合适的语义 编程语⾔为我们提供了各种抽象的⼿段 函数、泛型、⾼阶函数、接⼝…… 2 泛型函数与泛型数据 3 堆栈 栈是⼀个由⼀系列对象组成的⼀个集合,这些对象的插⼊和删除遵循后进先出原则 (Last In First Out) } 12. } 我们希望存储很多很多类型在堆栈中 每个类型都要定义⼀个对应的堆栈吗? IntStack 和 StringStack 似乎结构⼀模⼀样? 7 泛型数据结构与泛型函数 泛型数据结构与泛型函数以类型为参数,构建更抽象的结构 1. enum Stack[T] { 2. Empty 3. NonEmpty(T, Stack[T]) 4. } 5. fn Stack::empty[T]() 泛型数据结构与泛型函数 我们⽤ [<类型1>, <类型2>, ...] 来定义泛型的类型参数 enum Stack[T]{ Empty; NonEmpty(T, Stack[T]) } struct Pair[A, B]{ first: A; second: B } fn identity[A](value: A) { value } Stack 与 Pair 可以看做从类型上的函数:类型构造器0 码力 | 27 页 | 2.56 MB | 1 年前3
 Idris 语言文档 Version 1.3.1H AP T E R 1 I d r i s 教程 本文档为 奉 奤 奲 奩 女 的教程,它简单介绍了如何用 奉 奤 奲 奩 女 语言编程。 文档中覆盖了该语言的核心特性,并假 定你至少熟悉一门函数式编程语言,如 奈奡女 奫 奥 奬 奬 或 奏 奃 奡奭 奬 。 注 注 注解 解 解: 奉 奤 奲 奩 女 文档已按照 创 创 创作 作 作共 共 共用 用 用 C C 0 许 许 许可 可 可协 Vect n a, 其中 a 为元素的类型,而 n 为该列表的长度且可以任意 长。 当类型包含了描述其性质的值(如列表的长度)时,它就能描述函数自身的性质了。 比如连接两个列 表的操作,它拥有性质:结果列表的长度为两个输入列表的长度之和。 因此我们可以为 app 函数赋予 如下类型,它用于连接向量(奖奥 奣 奴 奯奲 ): app : Vect n a -> Vect m a -> Vect (n + 本教程介绍了 奉 奤 奲 奩 女 ,一个通用的依赖类型函数式编程语言。奉 奤 奲 奩 女 项目旨在为可验证的通用编程打造一 个依赖类型的语言。 为此,奉 奤 奲 奩 女 被设计成了编译型语言,目的在于生成高效的可执行代码。 它还拥有 轻量的外部函数接口,可与外部 C 库轻松交互。 1. 1. 1 目 目 目标 标 标受 受 受众 众 众 本教程面向已经熟悉函数式语言(如 奈奡女 奫 奥 奬 奬 或 奏 奃0 码力 | 224 页 | 2.06 MB | 1 年前3 Idris 语言文档 Version 1.3.1H AP T E R 1 I d r i s 教程 本文档为 奉 奤 奲 奩 女 的教程,它简单介绍了如何用 奉 奤 奲 奩 女 语言编程。 文档中覆盖了该语言的核心特性,并假 定你至少熟悉一门函数式编程语言,如 奈奡女 奫 奥 奬 奬 或 奏 奃 奡奭 奬 。 注 注 注解 解 解: 奉 奤 奲 奩 女 文档已按照 创 创 创作 作 作共 共 共用 用 用 C C 0 许 许 许可 可 可协 Vect n a, 其中 a 为元素的类型,而 n 为该列表的长度且可以任意 长。 当类型包含了描述其性质的值(如列表的长度)时,它就能描述函数自身的性质了。 比如连接两个列 表的操作,它拥有性质:结果列表的长度为两个输入列表的长度之和。 因此我们可以为 app 函数赋予 如下类型,它用于连接向量(奖奥 奣 奴 奯奲 ): app : Vect n a -> Vect m a -> Vect (n + 本教程介绍了 奉 奤 奲 奩 女 ,一个通用的依赖类型函数式编程语言。奉 奤 奲 奩 女 项目旨在为可验证的通用编程打造一 个依赖类型的语言。 为此,奉 奤 奲 奩 女 被设计成了编译型语言,目的在于生成高效的可执行代码。 它还拥有 轻量的外部函数接口,可与外部 C 库轻松交互。 1. 1. 1 目 目 目标 标 标受 受 受众 众 众 本教程面向已经熟悉函数式语言(如 奈奡女 奫 奥 奬 奬 或 奏 奃0 码力 | 224 页 | 2.06 MB | 1 年前3
 Nim 2.0.2 中文手册浮点类型 字符串类型 结构化类型 引⽤(指针)类型 过程类型 泛型类型 序数类型 序数类型有以下特征: 序数类型是可数的和有序的。因⽽允许使⽤如 inc , ord , dec 等函数,来操作已定义的序数类型。 序数类型具有最⼩可使⽤值,可以通过 low(type) 获取。尝试从最⼩值继续减⼩,会产⽣ panic 或静态错误。 序数类型具有最⼤可使⽤值,可以通过 high(type) 元组和对象类型 元组或对象类型的变量是异构存储容器。元组或对象定义了⼀个类型的各类 字段 。元组还定义了字段的 顺序 。 元组是有很少抽 象可能性的异构存储类型。 () 可⽤于构造元组。构造函数中字段的顺序必须与元组定义的顺序相匹配。 如果它们以相同的顺序 指定相同类型的相同字段,则不同的元组类型 等效 。字段的 名称 也必须相同。 proc myWriteln(f: File, a: fastcall 对于不同的 C 编译器其含义不同,有⼀种是表示 C 语⾔中的 __fastcall 。 thiscall 这是微软指定的调⽤约定,应⽤于 x86 架构上 C++ 类的成员函数。 syscall 其与 C 语⾔中的 __syscall 相同,⽤于中断。 noconv 其⽣成的 C 代码将不会去明确调⽤约定,将使⽤ C 编译器⾃身的默认调⽤约定。 这是有必要的,因为0 码力 | 127 页 | 7.05 MB | 1 年前3 Nim 2.0.2 中文手册浮点类型 字符串类型 结构化类型 引⽤(指针)类型 过程类型 泛型类型 序数类型 序数类型有以下特征: 序数类型是可数的和有序的。因⽽允许使⽤如 inc , ord , dec 等函数,来操作已定义的序数类型。 序数类型具有最⼩可使⽤值,可以通过 low(type) 获取。尝试从最⼩值继续减⼩,会产⽣ panic 或静态错误。 序数类型具有最⼤可使⽤值,可以通过 high(type) 元组和对象类型 元组或对象类型的变量是异构存储容器。元组或对象定义了⼀个类型的各类 字段 。元组还定义了字段的 顺序 。 元组是有很少抽 象可能性的异构存储类型。 () 可⽤于构造元组。构造函数中字段的顺序必须与元组定义的顺序相匹配。 如果它们以相同的顺序 指定相同类型的相同字段,则不同的元组类型 等效 。字段的 名称 也必须相同。 proc myWriteln(f: File, a: fastcall 对于不同的 C 编译器其含义不同,有⼀种是表示 C 语⾔中的 __fastcall 。 thiscall 这是微软指定的调⽤约定,应⽤于 x86 架构上 C++ 类的成员函数。 syscall 其与 C 语⾔中的 __syscall 相同,⽤于中断。 noconv 其⽣成的 C 代码将不会去明确调⽤约定,将使⽤ C 编译器⾃身的默认调⽤约定。 这是有必要的,因为0 码力 | 127 页 | 7.05 MB | 1 年前3
 Kotlin 1.9.10 官方文档 中文版
返回与跳转 异常 包与导入 类与对象 类 继承 属性 接口 函数式(SAM)接口 可见性修饰符 扩展 数据类 密封类与密封接口 泛型:in、out、where 嵌套类 枚举类 内联类 对象表达式与对象声明 委托 属性委托 类型别名 函数 函数 lambda 表达式 内联函数 1.8.5.4 1.8.6 1.8.7 1.8.8 1.8.9 1 10.4.3 1.10.2.10.4.4 1.10.2.11 与 C 语言互操作性 映射来自 C 语言的原始数据类型——教程 映射来自 C 语言的结构与联合类型——教程 映射来自 C 语言的函数指针——教程 映射来自 C 语言的字符串——教程 创建使用 C 语言互操作与 libcurl 的应用——教程 与 Objective-C 互操作性 与 Swift/Objective-C 互操作性 集合转换操作 过滤集合 加减操作符 分组 取集合的一部分 取单个元素 排序 聚合操作 集合写操作 List 相关操作 Set 相关操作 Map 相关操作 选择加入要求 作用域函数 时间度量 官方库 协程(kotlinx.coroutines) 1.12.1.1 1.12.1.2 1.12.1.3 1.12.1.4 1.12.1.5 1.12.1.6 1.120 码力 | 3753 页 | 29.69 MB | 1 年前3 Kotlin 1.9.10 官方文档 中文版
返回与跳转 异常 包与导入 类与对象 类 继承 属性 接口 函数式(SAM)接口 可见性修饰符 扩展 数据类 密封类与密封接口 泛型:in、out、where 嵌套类 枚举类 内联类 对象表达式与对象声明 委托 属性委托 类型别名 函数 函数 lambda 表达式 内联函数 1.8.5.4 1.8.6 1.8.7 1.8.8 1.8.9 1 10.4.3 1.10.2.10.4.4 1.10.2.11 与 C 语言互操作性 映射来自 C 语言的原始数据类型——教程 映射来自 C 语言的结构与联合类型——教程 映射来自 C 语言的函数指针——教程 映射来自 C 语言的字符串——教程 创建使用 C 语言互操作与 libcurl 的应用——教程 与 Objective-C 互操作性 与 Swift/Objective-C 互操作性 集合转换操作 过滤集合 加减操作符 分组 取集合的一部分 取单个元素 排序 聚合操作 集合写操作 List 相关操作 Set 相关操作 Map 相关操作 选择加入要求 作用域函数 时间度量 官方库 协程(kotlinx.coroutines) 1.12.1.1 1.12.1.2 1.12.1.3 1.12.1.4 1.12.1.5 1.12.1.6 1.120 码力 | 3753 页 | 29.69 MB | 1 年前3
 Kotlin 官方文档中文版  v1.9基本类型 概述 数字 布尔 字符 字符串 数组 无符号整型 类型检测与类型转换 控制流程 条件与循环 返回与跳转 异常 包与导入 类与对象 类 继承 属性 接口 函数式(SAM)接口 可见性修饰符 扩展 3 1.8.4.8 1.8.4.9 1.8.4.10 1.8.4.11 1.8.4.12 1.8.4.13 1.8.4.14 1.8.4.15 1.6 1.9.1.7 数据类 密封类与密封接口 泛型:in、out、where 嵌套类 枚举类 内联类 对象表达式与对象声明 委托 属性委托 类型别名 函数 函数 lambda 表达式 内联函数 操作符重载 类型安全的构建器 空安全 相等性 this 表达式 异步程序设计技术 协程 注解 解构声明 反射 多平台开发 Kotlin 多平台用于 iOS 1.10.2.13.1 1.10.2.13.2 1.10.2.13.3 1.10.2.13.4 1.10.3 1.10.3.1 1.10.3.2 1.10.3.3 映射来自 C 语言的函数指针——教程 映射来自 C 语言的字符串——教程 创建使用 C 语言互操作与 libcurl 的应用——教程 与 Objective-C 互操作性 与 Swift/Objective-C 互操作性0 码力 | 2049 页 | 45.06 MB | 1 年前3 Kotlin 官方文档中文版  v1.9基本类型 概述 数字 布尔 字符 字符串 数组 无符号整型 类型检测与类型转换 控制流程 条件与循环 返回与跳转 异常 包与导入 类与对象 类 继承 属性 接口 函数式(SAM)接口 可见性修饰符 扩展 3 1.8.4.8 1.8.4.9 1.8.4.10 1.8.4.11 1.8.4.12 1.8.4.13 1.8.4.14 1.8.4.15 1.6 1.9.1.7 数据类 密封类与密封接口 泛型:in、out、where 嵌套类 枚举类 内联类 对象表达式与对象声明 委托 属性委托 类型别名 函数 函数 lambda 表达式 内联函数 操作符重载 类型安全的构建器 空安全 相等性 this 表达式 异步程序设计技术 协程 注解 解构声明 反射 多平台开发 Kotlin 多平台用于 iOS 1.10.2.13.1 1.10.2.13.2 1.10.2.13.3 1.10.2.13.4 1.10.3 1.10.3.1 1.10.3.2 1.10.3.3 映射来自 C 语言的函数指针——教程 映射来自 C 语言的字符串——教程 创建使用 C 语言互操作与 libcurl 的应用——教程 与 Objective-C 互操作性 与 Swift/Objective-C 互操作性0 码力 | 2049 页 | 45.06 MB | 1 年前3
 MoonBit月兔编程语言 现代编程思想 第二课 月兔开发与月兔中的表达式	
buntu等环境),并参考⽉ 兔构建系统教程 7 ⽉兔中的表达式 8 ⼀个典型的⽉兔程序 1. //顶层函数定义 2. fn num_water_bottles(num_bottles: Int, num_exchange: Int) -> Int { 3. // 本地函数定义 4. fn consume(num_bottles, num_drunk) { 5. // 条件表达式 num_bottles = num_bottles - num_exchange + 1 9. let num_drunk = num_drunk + num_exchange 10. // 函数运算 11. consume(num_bottles, num_drunk) 12. } else { 13. num_bottles + num_drunk 14. Int, Int) 可以通过从0开始的下标访问数据 (2023, 10, 24).0 == 2023 (2023, 10, 24).1 == 10 20 其他数据类型 ⽉兔有丰富的类型结构 函数类型 op_add : (Int, Int) -> Int 单值类型 (): Unit 列表类型 List::Cons(1, Nil): List[Int] …… 我们会在后续课程中⻅到它们,以及⾃定义数据结构0 码力 | 39 页 | 1.53 MB | 1 年前3 MoonBit月兔编程语言 现代编程思想 第二课 月兔开发与月兔中的表达式	
buntu等环境),并参考⽉ 兔构建系统教程 7 ⽉兔中的表达式 8 ⼀个典型的⽉兔程序 1. //顶层函数定义 2. fn num_water_bottles(num_bottles: Int, num_exchange: Int) -> Int { 3. // 本地函数定义 4. fn consume(num_bottles, num_drunk) { 5. // 条件表达式 num_bottles = num_bottles - num_exchange + 1 9. let num_drunk = num_drunk + num_exchange 10. // 函数运算 11. consume(num_bottles, num_drunk) 12. } else { 13. num_bottles + num_drunk 14. Int, Int) 可以通过从0开始的下标访问数据 (2023, 10, 24).0 == 2023 (2023, 10, 24).1 == 10 20 其他数据类型 ⽉兔有丰富的类型结构 函数类型 op_add : (Int, Int) -> Int 单值类型 (): Unit 列表类型 List::Cons(1, Nil): List[Int] …… 我们会在后续课程中⻅到它们,以及⾃定义数据结构0 码力 | 39 页 | 1.53 MB | 1 年前3
 Kotlin 入门学习笔记整理
声明类 也是⽤ class 静态内部类 java 中 ⽤static 修饰;静态内部类可以写静态函数 kotlin 静态内部类是没有关键字修饰; 嵌套内部类 不⽤ static 修饰的话默认的内部类就是嵌套内部类,嵌套内部类可以获取外部类的引⽤,不可以写静态函数; kotlin 嵌套内部类是有关键字修饰,⽤ inner 修饰 实现接⼝ 实现接⼝和继承都是没有 constructor(userName: String?, passWord: String?){ 3 ... 4 } kotlin 每个成员属性,都⽣成了私有的成员变量,和两个公开的 set get 函数; 如果在代码中 调⽤实体的属性,只能 set() get(),想直接调⽤具体属性,需要在属性上加 @JvmField 注解; 后来kotlin 的新版本中已经没有 get set,直接就是属性名的形式,可以调⽤了 Integer... kotlin 定义静态函数的三种⽅式 创建 kotlin ⽂件 创建 kotlin ⽂件,在⽂件⾥创建函数,以及调⽤⽅式。 kotlin 中不需要类名点调⽤ 这种⽅式叫做 顶层函数; 在 java ⾥调⽤ kotlin 中的这种顶层函数⽅式 使⽤ object 声明静态函数 ⽤ object 修饰⼀个类,可以让⼀个类⽣成⼀个单0 码力 | 8 页 | 5.41 MB | 1 年前3 Kotlin 入门学习笔记整理
声明类 也是⽤ class 静态内部类 java 中 ⽤static 修饰;静态内部类可以写静态函数 kotlin 静态内部类是没有关键字修饰; 嵌套内部类 不⽤ static 修饰的话默认的内部类就是嵌套内部类,嵌套内部类可以获取外部类的引⽤,不可以写静态函数; kotlin 嵌套内部类是有关键字修饰,⽤ inner 修饰 实现接⼝ 实现接⼝和继承都是没有 constructor(userName: String?, passWord: String?){ 3 ... 4 } kotlin 每个成员属性,都⽣成了私有的成员变量,和两个公开的 set get 函数; 如果在代码中 调⽤实体的属性,只能 set() get(),想直接调⽤具体属性,需要在属性上加 @JvmField 注解; 后来kotlin 的新版本中已经没有 get set,直接就是属性名的形式,可以调⽤了 Integer... kotlin 定义静态函数的三种⽅式 创建 kotlin ⽂件 创建 kotlin ⽂件,在⽂件⾥创建函数,以及调⽤⽅式。 kotlin 中不需要类名点调⽤ 这种⽅式叫做 顶层函数; 在 java ⾥调⽤ kotlin 中的这种顶层函数⽅式 使⽤ object 声明静态函数 ⽤ object 修饰⼀个类,可以让⼀个类⽣成⼀个单0 码力 | 8 页 | 5.41 MB | 1 年前3
 PyWebIO v1.1.0 使用手册6 Discussion and support 89 Python 模块索引 91 索引 93 i ii PyWebIO, 发布 1.1.0 PyWebIO 提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,将浏览器变成了一个“富 文本终端”,可以用于构建简单的 Web 应用或基于浏览器的 GUI 应用。使用 PyWebIO,开发者能像编写终端 脚本一样 (基于 input status)) break if __name__ == '__main__': bmi() 如果没有使用 PyWebIO,这只是一个非常简单的脚本,而通过使用 PyWebIO 提供的输入输出函数,你可以 7 PyWebIO, 发布 1.1.0 在浏览器中与代码进行交互: 将上面代码最后一行对 bmi() 的直接调用改为使用pywebio.start_server(bmi, port=80) 应用,只不过这里的终端变成了浏览器。通过 PyWebIO 提 供的命令式 API,你可以简单地调用 put_text 、put_image 、put_table 等函数输出文本、图片、表格 等内容到浏览器,也可以调用 input 、select 、file_upload 等函数在浏览器上显示不同表单来接收用 户的输入。此外 PyWebIO 中还提供了点击事件、布局等支持,让你可以使用最少的代码完成与用户的交互, 并尽可能提供良好的用户体验。0 码力 | 98 页 | 1.73 MB | 1 年前3 PyWebIO v1.1.0 使用手册6 Discussion and support 89 Python 模块索引 91 索引 93 i ii PyWebIO, 发布 1.1.0 PyWebIO 提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,将浏览器变成了一个“富 文本终端”,可以用于构建简单的 Web 应用或基于浏览器的 GUI 应用。使用 PyWebIO,开发者能像编写终端 脚本一样 (基于 input status)) break if __name__ == '__main__': bmi() 如果没有使用 PyWebIO,这只是一个非常简单的脚本,而通过使用 PyWebIO 提供的输入输出函数,你可以 7 PyWebIO, 发布 1.1.0 在浏览器中与代码进行交互: 将上面代码最后一行对 bmi() 的直接调用改为使用pywebio.start_server(bmi, port=80) 应用,只不过这里的终端变成了浏览器。通过 PyWebIO 提 供的命令式 API,你可以简单地调用 put_text 、put_image 、put_table 等函数输出文本、图片、表格 等内容到浏览器,也可以调用 input 、select 、file_upload 等函数在浏览器上显示不同表单来接收用 户的输入。此外 PyWebIO 中还提供了点击事件、布局等支持,让你可以使用最少的代码完成与用户的交互, 并尽可能提供良好的用户体验。0 码力 | 98 页 | 1.73 MB | 1 年前3
共 446 条
- 1
- 2
- 3
- 4
- 5
- 6
- 45














 
  
 