摘要: 本博客列出的答案不是来自官方资源,是我自己做的练习,可能有误。8-9.斐波那契数列。斐波那契数列形如1,1,2,3,5,8,13,21等等。也就是说,下一个值是序列中前两个值之和。写一个函数,给定N,返回第N个斐波那契数数字。例如,第1个斐波那契数字是1,第6个是8。【答案】代码如下:def Fibonacci(number): fs = [0, 1] i = 1 for i in range(number - 1): a = fs[-1] + fs[-2] fs.append(a) i += 1 print fs[1:] ... 阅读全文
posted @ 2012-01-12 08:12 balian 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 8-6.素因子分解。以刚才练习中的isprime()和getfactors()函数为基础编写一个函数,它接受一个整型作为参数,返回该整型所有素数因子的列表。这个过程叫做求素因子分解,它输出的所有因子之积应该是原来的数字。注意列表里可能有重复的元素。例如输入20,返回的结果应该是[2,2,5]。【答案】代码如下:def isprime(number): switch = True if number <= 1: switch = False for i in range(2, number / 2 + 1): if number % i == 0: switch... 阅读全文
posted @ 2012-01-11 07:24 balian 阅读(2239) 评论(0) 推荐(0) 编辑
摘要: 8-1.条件语句。请看下面的代码:# statement Aif x > 0: # statement B passelif x < 0: # statement C passelse: # statement D pass# statement E(a)如果x<0,上面哪个语句(A,B,C,D,E)将被执行?(b)如果x=0,上面哪个语句将被执行?(c)如果x>0,上面哪个语句将被执行?【答案】(a)ACE(b)ADE(c)ABE可以实验一下这个代码,代码如下:x = int(raw_input('Please input X ... '))print 阅读全文
posted @ 2012-01-10 07:08 balian 阅读(696) 评论(0) 推荐(0) 编辑
摘要: 这是在网上搜到的办法,我下载了Python 2.7.2 (Windows 64bit)试了一下,没遇到问题。我的Python安装文件是python-2.7.2.amd64.msi操作系统是Win7 Ulitmate,安装后文件夹放在D盘。第一次安装时,运行python-2.7.2.amd64.msi,在提示安装路径的时候选D:\Python27,在提示是否为当前用户安装还是所有用户安装时,选只有当前用户使用。于是Python的所有资源就都在D:\Python27文件夹下了。只要保存这个文件夹,下次重装系统只要复制这个文件夹到D盘根目录,就能直接使用。同理,如果你有第二台Win7 (64bit) 阅读全文
posted @ 2011-12-13 05:53 balian 阅读(2939) 评论(1) 推荐(0) 编辑
摘要: 自从上周抛弃了WinXP转而安装了Win7,64位后,尝试安装Python+Eclipse遇到了一点小问题。现在已经解决,将安装顺序记录如下,供参考。Setp1,到ORACLE网站下载64位的JDK。http://www.oracle.com/technetwork/java/javase/downloads/index.html下载JDK,我下载的是jdk-6u26-windows-x64.exe安装后需要手工添加系统环境变量。JAVA_HOME = C:\Java\jdk1.6.0_23 (路径最好不要带空格)PATH =...;$JAVA_HOME/bin;$JAVA_HOME/jre/ 阅读全文
posted @ 2011-06-19 13:23 balian 阅读(8933) 评论(1) 推荐(0) 编辑
摘要: 7-3.字典和列表的方法。(a)创建一个字典,并把这个字典中的键按照字母顺序显示出来。(b)现在根据已经按照字母顺序排列好的键,显示出这个字典中的键和值。(c)同(b),但这次是根据已按照字母顺序排序好的字典的值,显示出这个字典中的键和值(注意:对字典和哈希表来说,这样做一般没什么实际意义,因为大多数访问和排序(如果需要)都是基于字典的键,这里只把它作为一个练习)。【答案】(a)代码如下:>>> my_dict = {'a': 4, 'b': 3, 'c': 2, 'd': 1}>>> my_d 阅读全文
posted @ 2011-06-11 10:38 balian 阅读(993) 评论(7) 推荐(0) 编辑
摘要: 7-1.字典方法。哪个字典方法可以用来把两个字典合并到一起。【答案】dict.update(dict2)将字典dict2的键-值对添加到字典dict7-2.字典的键。我们知道字典的值可以是任意的Python对象,那字典的键又如何呢?请试着将除数字和字符串意外的其他不同类型的对象作为字典的键,看看哪些类型可以,哪些不行。对那些不能作为字典的键的对象类型,你认为是什么原因呢?【答案】Python对象:可哈希对象(不变类型)---数字,字符串和元组(但要加以限制)不可哈希对象(可变类型)--列表,字典,集合需要注意的是:值相等的数字代表同一个键,元组作为键时,其元素必须是可哈希的。内建函数hash( 阅读全文
posted @ 2011-06-10 10:39 balian 阅读(1977) 评论(0) 推荐(0) 编辑
摘要: 6-16.矩阵。处理矩阵M和N的加和乘操作。【答案】(a)M和N的加操作代码如下:def matrix_input(string, m, n): matrix = [] a = string.split(',') for i in range(m * n): matrix.append(a[i]) return matrix def matrix_display(matrix, m, n): for i in range(m): for j in range(n): print matrix[i * n + j], print '\r'M_row = int(r 阅读全文
posted @ 2011-06-04 06:46 balian 阅读(781) 评论(2) 推荐(0) 编辑
摘要: 6-14.随机数。设计一个“石头、剪子、布”游戏,有时又叫“Rochambeau”,你小时候可能玩过,下面是规则。你和你的对手,在同一时间做出特定的手势,必须是下面一种:石头、剪子、布。胜利者从下面的规则产生,这个规则本身是个悖论。(a)布包石头。(b)石头砸剪子。(c)剪子剪破布。在你的计算机版本中,用户输入他/她的选项,计算机找一个随机选项,然后由你的程序来决定一个胜利者或者平手。注意,最好的算法是尽量少使用if语句。【答案】代码如下:def showmenu(): print ''' (S)tone S(h)ears (C)loth (Q)uit ' 阅读全文
posted @ 2011-06-03 07:22 balian 阅读(963) 评论(0) 推荐(0) 编辑
摘要: (b)代码如下,另外一种做法,逆序查找:def rfindchr(string, char): a = string index = -1 k = len(a) for i in a[::-1]: k = k - 1 if i == char: index = k print index break if index == -1: print 'index = ', index a = raw_input('Please input a string ... ')b = raw_input('Please input a character to be 阅读全文
posted @ 2011-05-31 12:25 balian 阅读(752) 评论(1) 推荐(0) 编辑