随笔分类 -  学习笔记

摘要:十、输入/输出 一些情况下你不得不让程序与用户进行交互。例如,你需要从用户处得到输入然后输出计算结果。我们可以分别通过input()和print()函数做到这些。 对于输出,我们还可以使用str(string)类的各种方法。例如rjust方法可以得到一个指定宽度的右对齐字符串。详见help(str)。 另一种常见的输入/输出类型为文件处理。创建、读和写文件的能力是许多程序所必需的,我们将会在这章探索如何实现这些功能。 1、用户输入 # user_input.py def reverse(text): return text[::-1] def is_palindrom... 阅读全文
posted @ 2011-11-27 16:43 Wanglikai91 阅读(676) 评论(0) 推荐(2)
摘要:九、面向对象的编程 到目前为止,在我们的程序中,我们都是根据操作数据的函数或语句块来设计程序的。这被称为面向过程的编程。还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法。这种方法称为面向对象的 编程理念。在大多数时候你可以使用过程性编程,但是有些时候当你想要编写大型程序或是寻求一个更加合适的解决方案的时候,你就得使用面向对象的编程技术。 类和对象是面向对象编程的两个主要方面。类创建一个新类型,而对象这个类的实例。这类似于你有一个int类型的变量,这存储整数的变量是int类的实例(对象)。 注意:即便是整数也被作为对象(属于int类)。这和C++、Java(1.5版... 阅读全文
posted @ 2011-11-26 17:43 Wanglikai91 阅读(632) 评论(0) 推荐(0)
摘要:八、数据结构 数据结构就是可以将一些数据结合到一起的数据结构,换言之用于存储一组相关的数据,Python有4种内建数据结构:列表,元组,字典和集合。 1、列表 列表是一种用于保存有序元素集合的数据结构,即你可以在列表中存储元素序列。考虑一个购物清单,上面有你需要购买的物品列表,只不过你可能希望以分号分隔他们而到Python变成了逗号。 列表元素被包含在方括号中,这样Python就会才会明白你指定的是一个列表。一点列表创建完毕,我们可以对其元素进行添加,删除和搜索。正是因为可以执行添加和删除操作,我们将列表称作可变类型,即这种类型可以被修改。 对象和类的快速简介 列表是使用对象和类的... 阅读全文
posted @ 2011-11-22 20:37 Wanglikai91 阅读(476) 评论(0) 推荐(0)
摘要:七、模块: 我们可以通过编写函数来复用代码,同样我们可以通过模块来复用大量函数。有多重方法可以编写模块,但是最简单的方法是创建一个以.py为后缀的文件来包含需要复用的变量和函数。另一种方式是以编写python解释器的本地语言编写模块。例如C语言编写的模块被编译后可供运行于标准python解释器上的python代码使用。模块可以被其它程序导入以使用其提供的功能。这也是为什么我们可以使用python标准库。 我们先来看看如何使用标准库模块: # Filename: using_sys.py import sys print('The command line arguments are:. 阅读全文
posted @ 2011-11-12 11:37 Wanglikai91 阅读(563) 评论(0) 推荐(0)
摘要:六、函数: 函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为调用函数。我们已经使用了许多内建的函数,比如len和range。 函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。 1、定义函数: 例如: # Filename: function1.py def sayHello(): print('Hello World!') # block belonging to the function# 阅读全文
posted @ 2011-11-05 00:36 Wanglikai91 阅读(1322) 评论(0) 推荐(0)
摘要:五、控制流 1、if语句: 如果if条件为真,程序运行if程序块,否则运行else程序块。else语句是可选的。 例如: # Filename: if.py number = 23guess = int(input('Enter an integer : ')) if guess == number: print('Congratulations, you guessed it.') # New block starts here print('(but you do not win any prizes!)') # New block ends 阅读全文
posted @ 2011-11-04 13:31 Wanglikai91 阅读(1147) 评论(0) 推荐(0)
摘要:四、运算符和表达式 大多数语句(逻辑行)都包含表达式。一个简单的表达式例子如2 + 3。一个表达式可以分解为运算符和操作数。 运算符 的功能是完成某件事,它们由如+这样的符号或者其他特定的关键字表示。运算符需要数据来进行运算,这样的数据被称为 操作数 。在这个例子中,2和3是操作数。 1、运算符: 我们可以交互地使用解释器来计算例子中给出的表达式。例如,为了测试表达式2 + 3,使用交互式的带提示符的Python解释器: >>> 2 + 3 5 >>> 3 * 5 15 >>> 2、运算符与用法: 大多数运算符与C/C++类似,这里之提出不 阅读全文
posted @ 2011-11-03 12:43 Wanglikai91 阅读(479) 评论(0) 推荐(0)
摘要:4、变量: 只用常量是不够的,我们需要一种既可以储存信息 又可以对它们进行操作的方法,这时就需要变量了。变量只是计算机中存储信息的一部分内存,我们需要一个变量名来访问它们。 5、标识符的命名: 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’)。 标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。 标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。 有效 标识符名称的例子有i、__my_name、name_23和a1b2_c3。 ... 阅读全文
posted @ 2011-11-02 00:43 Wanglikai91 阅读(690) 评论(0) 推荐(0)
摘要:接上:Python学习(一)三、基本概念1、常量:一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的数,或者如同'This is a string'、"It's a string!"这样的字符串。它们被称作字面意义上的,因为它们具备 字面 的意义——你按照它们的字面意义使用它们的值。数2总是代表它自己,而不会是别的什么东西——它是一个常量,因为不能改变它的值。因此,所有这些都被称为字面意义上的常量。2、数:在Python中有4种类型的数——整数、长整数、浮点数和复数。2是一个整数的例子。长整数不过是大一些的整数。3.23和52.3E- 阅读全文
posted @ 2011-11-01 01:10 Wanglikai91 阅读(743) 评论(0) 推荐(0)
摘要:早就听说了Python这强大的脚本语言,今天决定开始学习,毕竟学习一门脚本语言也是非常有必要的。第一步就从《A Byte of Python》v1.92 (for python 3.0)这本经典的电子书开始。注:以下几篇内容为个人对本书的整理以及理解,其中只包含Windows下的实践。一、安装:可以通过访问http://www.python.org/download/releases/3.2/ 下载最新版本。与大多数其他编程语言或软件,上述安装包只有17MB。安装过程和安装其他Windows软件相同。注意:最好不要取消任何可选组件!一些组件例如IDLE将会对你有极大帮助。DOS命令:如果想在M 阅读全文
posted @ 2011-10-31 17:33 Wanglikai91 阅读(1789) 评论(0) 推荐(1)
摘要:现在有这样一道题:给你100000个长度不超过10的单词。对于每一个单词,我们要判断他出没出现过。这个题很明显可以用HASH来做,但是对于长度不超过10的单词,trie树要来得更方便,效率也很好。不仅如此,trie树还有很多其他的用途,而且有些方面trie树有它独有的优势。比如说对于某一个单词,我要询问它的前缀是否出现过。这样hash就不好搞了,而用trie还是很简单。 现在回到例子中,如果我们用最傻的方法,对于每一个单词,我们都要去查找它前面的单词中是否有它。那么这个算法的复杂度就是O(n^2)。显然对于100000的范围难以接受。现在我们换个思路想。假设我要查询的单词是abcd,那么在他前 阅读全文
posted @ 2011-10-11 19:11 Wanglikai91 阅读(441) 评论(0) 推荐(0)