Jinja2 简明教程
Flask包含强大的Jinja模板语言,学习Flask之前要先学习一下jinja。
在Jinja2之前,已经有类似的模板语言,如JSP,Django。这些语言实际上包含了变量以及一些编程逻辑,当它们被呈现为HTML时,它们会被实际值取代。
变量和/或逻辑放置在标签或分隔符之间。例如,Jinja模板% … %
用于表达式或逻辑(比如for循环),同时 …
用于向用户输出表达式或变量的结果。后者标记在呈现时被替换为一个或多个值,并且最终由用户看到。
Jinja模板只是.html文件。按照惯例,它们位于Flask项目的”/templates”目录中。如果你熟悉字符串格式化或插值,模板语言遵循相似的逻辑类型-只是整个HTML页面的规模。
线性表的基本概念
一、线性表的定义
线性表:零个或多个数据元素的有限序列。
几个关键的地方。
首先它是一个序列。也就是说,元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都只有一个前驱和后继。
然后,线性表强调是有限的。事实上,在计算机中处理的对象都是有限的,那种无限的数列,只存在于数学的概念中。
如果用数学语言来定义。可如下:
若将线性表记为(a1,…,ai-1,ai,ai+1,…,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当i = 1,2,…,n-1时,ai有且仅有一个直接后继,当i = 2 , 3 , … , n时,ai有且仅有一个直接前驱。
所以线性表元素的个数n(n ≥ 0)定义为线性表长度,当n=0时,称为空表。
算法时间复杂度和空间复杂度计算
通常,对于一个给定的算法,我们要做 两项分析。
第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二步就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。
算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。而度量一个程序的执行时间通常有两种方法。
一、事后统计的方法
这种方法可行,但不是一个好的方法。该方法有两个缺陷:一是要想对设计的算法的运行性能进行评测,必须先依据算法编制相应的程序并实际运行;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优势。
二、事前分析估算的方法
因事后统计方法更多的依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。因此人们常常采用事前分析估算的方法。
安装TomCat学习JSP
这学期开了JSP应用教程,昨天上课时需要安装TomCat,但大家安装的都不是很顺利,安装后也会有各种问题,我就帮大家解决了各种问题,在这里记录一下,以后有同学需要的时候可以看一下。
安装JDK,配置java环境
JSP,全称Java Server Page ,所以肯定需要Java环境。我安装的是1.8.0_161,不推荐安装最新版的9.0。
Linux系统安装JDK可以参考我之前这篇文章,点这里。
Windows系统,我习惯安装在C:\Java,默认安装在C:\Program Files\Java,安装在哪里都行,然后一路默认下去,等待安装结束。
然后就是配置Java环境。