Python3 基础教程 - 廖雪峰........................................................................................... 53 条件判断 .................................................................................................. 变成 False,False 变 成 True: >>> not True False >>> not False True >>> not 1 > 2 True 布尔值经常用在条件判断中,比如: if age >= 18: print('adult') else: Python3 基础教程【完整版】 http://www.yeayee.com/ 38/531 基础教程【完整版】 http://www.yeayee.com/ 60/531 参考源码 the_list.py the_tuple.py 条件判断 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。 比如,输入用户年龄,根据年龄打印不同的内容,在 Python 程序中, 用 if 语句实现: age = 20 if age >= 18:0 码力 | 531 页 | 5.15 MB | 1 年前3
Hello 算法 1.0.0b1 Python版hello‑algo.com 17 2.2.4. 推算方法 推算出 ?(?) 后,我们就得到时间复杂度 ?(?(?)) 。那么,如何来确定渐近上界 ?(?) 呢?总体分为两步,首 先「统计操作数量」,然后「判断渐近上界」。 1) 统计操作数量 对着代码,从上到下一行一行地计数即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作 数量 ?(?) 中的各种系数、常数项都可以被 range(5 * n + 1): print(0) # +n*n(技巧 3) for i in range(2 * n): for j in range(n + 1): print(0) 2) 判断渐近上界 时间复杂度由多项式 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将处于主导作用, 其它项的影响都可以被忽略。 以下表格给出了一些例子,其中有一些夸张的值,是想要向大家强调 「暴力枚举」和「辅助哈希表」分别对应 空间最优 和 时间最优 的两种解法。本着时间比空间更宝贵的原则,后 者是本题的最佳解法。 方法一:暴力枚举 考虑直接遍历所有所有可能性。通过开启一个两层循环,判断两个整数的和是否为 target ,若是则返回它俩 的索引(即下标)即可。 # === File: leetcode_two_sum.py === def two_sum_brute_force(nums:0 码力 | 178 页 | 14.67 MB | 1 年前3
Hello 算法 1.0.0b4 Python版和 C 的时间复杂度相同,但实际运行时间差别很大。同 样,尽管算法 B 的时间复杂度比 C 高,但在输入数据大小 ? 较小时,算法 B 明显优于算法 C 。在这些情况下, 我们很难仅凭时间复杂度判断算法效率高低。当然,尽管存在上述问题,复杂度分析仍然是评判算法效率最 有效且常用的方法。 2.2.3. 函数渐近上界 设算法的计算操作数量是一个关于输入数据大小 ? 的函数,记为 ?(?) ,则以下算法的操作数量为 需要掌握 推算方法,数学意义可以逐渐领悟。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 ?(?) 呢?总体分 为两步:首先统计操作数量,然后判断渐近上界。 第一步:统计操作数量 针对代码,逐行从上到下计算即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作数量 ?(?) 中的各种系数、常数项都可以被忽略。根据此原则,可以总结出以下计数简化技巧: range(5 * n + 1): print(0) # +n*n(技巧 3) for i in range(2 * n): for j in range(n + 1): print(0) 第二步:判断渐近上界 时间复杂度由多项式 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用, 其他项的影响都可以被忽略。 以下表格展示了一些例子,其中一些夸张的值是为了强调“系数无法撼动阶数”这一结论。当0 码力 | 329 页 | 27.34 MB | 1 年前3
Hello 算法 1.1.0 Python版和 C 的时间复杂度相同,但实际运行时间差别很 大。同样,尽管算法 B 的时间复杂度比 C 高,但在输入数据大小 ? 较小时,算法 B 明显优于算法 C 。在 这些情况下,我们很难仅凭时间复杂度判断算法效率的高低。当然,尽管存在上述问题,复杂度分析仍 然是评判算法效率最有效且常用的方法。 2.3.2 函数渐近上界 给定一个输入大小为 ? 的函数: 第 2 章 复杂度分析 hello‑algo 不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 ?(?) 呢?总体分 为两步:首先统计操作数量,然后判断渐近上界。 1. 第一步:统计操作数量 针对代码,逐行从上到下计算即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作数量 ?(?) 中的各种系数、常数项都可以忽略。 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 + ? 偷懒统计 (o.O) 2. 第二步:判断渐近上界 时间复杂度由 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用,其他 项的影响都可以忽略。 表 2‑2 展示了一些例子,其中一些夸张的值是为了强调“系数无法撼动阶数”这一结论。当0 码力 | 364 页 | 18.42 MB | 1 年前3
Hello 算法 1.0.0 Python版和 C 的时间复杂度相同,但实际运行时间差别很 大。同样,尽管算法 B 的时间复杂度比 C 高,但在输入数据大小 ? 较小时,算法 B 明显优于算法 C 。在 这些情况下,我们很难仅凭时间复杂度判断算法效率的高低。当然,尽管存在上述问题,复杂度分析仍 然是评判算法效率最有效且常用的方法。 第 2 章 复杂度分析 hello‑algo.com 30 2.3.2 函数渐近上界 给定一个输入大小为 不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 ?(?) 呢?总体分 为两步:首先统计操作数量,然后判断渐近上界。 1. 第一步:统计操作数量 针对代码,逐行从上到下计算即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作数量 ?(?) 中的各种系数、常数项都可以忽略。 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 + ? 偷懒统计 (o.O) 2. 第二步:判断渐近上界 时间复杂度由 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用,其他 项的影响都可以忽略。 第 2 章 复杂度分析 hello‑algo.com 320 码力 | 362 页 | 17.54 MB | 1 年前3
Hello 算法 1.0.0b5 Python版和 C 的时间复杂度相同,但实际运行时间差别很 大。同样,尽管算法 B 的时间复杂度比 C 高,但在输入数据大小 ? 较小时,算法 B 明显优于算法 C 。在 这些情况下,我们很难仅凭时间复杂度判断算法效率的高低。当然,尽管存在上述问题,复杂度分析仍 然是评判算法效率最有效且常用的方法。 2.3.2 函数渐近上界 给定一个输入大小为 ? 的函数: def algorithm(n: int): 要掌握 推算方法,数学意义就可以逐渐领悟。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 ?(?) 呢?总体分 为两步:首先统计操作数量,然后判断渐近上界。 第 2 章 复杂度分析 hello‑algo.com 29 1. 第一步:统计操作数量 针对代码,逐行从上到下计算即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作数量 。 ?(?) = 2?(? + 1) + (5? + 1) + 2 完整统计 (‑.‑|||) = 2?2 + 7? + 3 ?(?) = ?2 + ? 偷懒统计 (o.O) 2. 第二步:判断渐近上界 时间复杂度由多项式 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用, 其他项的影响都可以被忽略。 表 2‑1 展示了一些例子,其中一些夸张的值是0 码力 | 361 页 | 30.64 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Python 版如果把具体的工作技能比作是武功的“招式”的话,那么基础科目应该更像是“内功”。 我认为学算法(以及其他基础科目)的意义不是在于在工作中从零实现它,而是基于学到的知识,在解决问 题时能够作出专业的反应和判断,从而提升工作的整体质量。举一个简单例子,每种编程语言都内置了排序 函数: ‧ 如果我们没有学过数据结构与算法,那么给定任何数据,我们可能都塞给这个排序函数去做了。运行顺 畅、性能不错,看上去并没有什么问题。 C 的时间复杂度相同,但实际运行时间差别很 大。同样,尽管算法 B 的时间复杂度比 C 高,但在输入数据大小 ? 较小时,算法 B 明显优于算法 C 。对 于此类情况,我们时常难以仅凭时间复杂度判断算法效率的高低。当然,尽管存在上述问题,复杂度分 析仍然是评判算法效率最有效且常用的方法。 2.3.2 函数渐近上界 给定一个输入大小为 ? 的函数: 第 2 章 复杂度分析 www.hello‑algo 不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 ?(?) 呢?总体分 为两步:首先统计操作数量,然后判断渐近上界。 1. 第一步:统计操作数量 针对代码,逐行从上到下计算即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作数量 ?(?) 中的各种系数、常数项都可以忽略。0 码力 | 364 页 | 18.43 MB | 10 月前3
Hello 算法 1.0.0b2 Python版hello‑algo.com 17 2.2.4. 推算方法 推算出 ?(?) 后,我们就得到时间复杂度 ?(?(?)) 。那么,如何来确定渐近上界 ?(?) 呢?总体分为两步,首 先「统计操作数量」,然后「判断渐近上界」。 1) 统计操作数量 对着代码,从上到下一行一行地计数即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作 数量 ?(?) 中的各种系数、常数项都可以被 range(5 * n + 1): print(0) # +n*n(技巧 3) for i in range(2 * n): for j in range(n + 1): print(0) 2) 判断渐近上界 时间复杂度由多项式 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将处于主导作用, 其它项的影响都可以被忽略。 以下表格给出了一些例子,其中有一些夸张的值,是想要向大家强调 「暴力枚举」和「辅助哈希表」分别对应 空间最优 和 时间最优 的两种解法。本着时间比空间更宝贵的原则,后 者是本题的最佳解法。 方法一:暴力枚举 考虑直接遍历所有所有可能性。通过开启一个两层循环,判断两个整数的和是否为 target ,若是则返回它俩 的索引(即下标)即可。 # === File: leetcode_two_sum.py === def two_sum_brute_force(nums:0 码力 | 186 页 | 15.69 MB | 1 年前3
python3学习手册#a和b的差集 a | b #a和b的并集 a & b #a和b的交集 a ^ b #a和b中不同时存在的元素 ★判断变量类型 type(x) #返回x的类型,如isinstance(x, int) #返回True或False type()不会 认为子类是父类的一种类型 #将strx拆分,""之间指定拆分符 strx.split(" ", 1) #将strx拆分,""之间指定拆分符,且只拆分1次, 即分成2部分 strx.isdigit() #判断strx是否为纯数字字符,是则返回True,否则 返回False lists=["abc","def","what"] strx="".join(lists) #默认直接拼接可遍历的对象,元素只可为 # a not in Listx ; a不在Listx中则返回True ⑤身份运算符 is # a is b ; 判断a和b是否引用自同一个对象,是则返回 True is not # a is b 同 id(a) == id(b) # id(x)用于获取对象x的内存地址 ⑥位运算符 0 码力 | 213 页 | 3.53 MB | 1 年前3
Flask入门教程help='Create after drop.') # 设置选项 def initdb(drop): """Initialize the database.""" if drop: # 判断是否输入了选项 db.drop_all() db.create_all() click.echo('Initialized database.') # 输出提示信息 个 if 判断: app.py:创建电影条目 第 7 章:表单 62 from flask import request, url_for, redirect, flash # ... @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # 判断是否是 POST method )、表单数据( request.form )、查询字符串 ( request.args )等等。 在上面的 if 语句中,我们首先通过 request.method 的值来判断请求方法。 在 if 语句内,我们通过 request.form 来获取表单数据。 request.form 是一个特殊的字典,用表单字段的 name 属性值可以获取用户填入的对应数据:0 码力 | 127 页 | 7.62 MB | 1 年前3
共 107 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11













