《python核心编程第二版》第八章练习解析
2015-05-02 11:54
246 查看
2.循环。编写一个程序,让用户输入3个数字:(f)rom,(t)o 和 (i)ncrement。以i为步长,从f计数到t,包括f和t。例如,如果输入的是f==2、t==26、i==4,程序将输出2,6,10,14,18,22,26。
3.略
4.素数。我们在本章已经给出了一些代码来确定一个数的最大约数或者他是否是一个素数。请把相关的代码转换成一个返回值为布尔值的函数,函数名为isprime()。如果输入是一个素数,那么返回True,否则返回False。
6.素因子分解。以刚才的练习中的isprime()和getfactors()函数为基础编写一个函数,他接受一个整形作为参数,返回该整形的所有素数因子的列表。这个过程叫做素因子分解,他输出的所有因子应该是原来的数字。注意列表里可能有重复的元素。例如输入20,返回结果应该是[2,2,5]。
7.完全数。完全数被定义成这样的样数字:它的约数(不包括它自己)之和为他本身。例如:6的约数是1,2,3,因为1+2+3=6,所以6被认为是一个完全数。编写一个名为isperfect()的函数,他接受一个整形作为参数,如果这个数字是完全数,返回1:否则返回0。
10.文本处理。统计一句话中的元音,辅音及单词个数,忽略元音和辅音的特殊情况。附加题:编写处理这些特殊情况的代码。
略
11.
13.略
# -*- coding: utf-8 -*- f = input() t = input() i = input() for j in range(f,t+1,i): print j
3.略
4.素数。我们在本章已经给出了一些代码来确定一个数的最大约数或者他是否是一个素数。请把相关的代码转换成一个返回值为布尔值的函数,函数名为isprime()。如果输入是一个素数,那么返回True,否则返回False。
import math def isprime(n): if n >= 2: for i in range(2,int(math.sqrt(n))+1): if n%i==0: return False else: return True else: return False5.约数。完成一个名为getfactors()的函数。他接受一个整形作为参数,返回他所有的约数的列表,包括1和他本身
<pre name="code" class="python" style="font-size: 14px; line-height: 26px;">def getfactors(n): list =[] for i in range(1,n+1): if n%i ==0: list.append(i) return list
6.素因子分解。以刚才的练习中的isprime()和getfactors()函数为基础编写一个函数,他接受一个整形作为参数,返回该整形的所有素数因子的列表。这个过程叫做素因子分解,他输出的所有因子应该是原来的数字。注意列表里可能有重复的元素。例如输入20,返回结果应该是[2,2,5]。
# -*- coding: utf-8 -*-
import math def isprime(n): if n >= 2: for i in range(2,int(math.sqrt(n))+1): if n%i==0: return False else: return True else: return False
def getfactors(n):
list =[]
if n == 1:
list.append(1)
else:
while not isprime(n):
for i in range(2,n+1):
if n%i ==0:
list.append(i)
n = n/i
break
list.append(n)
return list
if __name__ == '__main__':
n = input()
print getfactors(n)
7.完全数。完全数被定义成这样的样数字:它的约数(不包括它自己)之和为他本身。例如:6的约数是1,2,3,因为1+2+3=6,所以6被认为是一个完全数。编写一个名为isperfect()的函数,他接受一个整形作为参数,如果这个数字是完全数,返回1:否则返回0。
def getfactors(n): list =[] sum =0 for i in range(1,n): if n%i ==0: list.append(i) sum +=i if sum==n: return True else: return False8.阶乘。一个数的阶乘被定义为从1到该数字所有数字的积。N的阶乘简写为N!。N!==factorial(N)==1*2.....*N,so 4!==1*2*3*4。写一个函数,指定N,返回N!的值。
def jiecheng(n): num = 1 for i in range(1,n+1): num *= i return num9.斐波那契数列。斐波那契数列形如1,1,2,3,5,8,13,21,等等。也就是说下一个值是前两个值得和。写一个函数,给定N,返回第N个斐波那契数字。例如,第1个斐波那契数字是1,第6个是8.
def test(num): a = 1 b = 1 if num==1 or num==2 : return 1 else: for i in range(3,num+1): c = a + b a = b b = c return c
10.文本处理。统计一句话中的元音,辅音及单词个数,忽略元音和辅音的特殊情况。附加题:编写处理这些特殊情况的代码。
略
11.
# -*- coding: utf-8 -*- def name(n): count = 0 namelist = [] for i in range(n): print 'Please enter name %d:' % i, names = raw_input() if ',' in names: namelist.append(names) else: count += 1 print 'Wrong format...should be Last,First.' print 'You have done this %d time(s) already.Fixing input...' % count names = names.split() namelist.append(names[1]+','+names[0]) return sorted(namelist) if __name__=='__main__': n = input('Enter total number of names:') names = name(n) for i in names: print i12.
# -*- coding: utf-8 -*- def test(start,end): if end <33 or start >126: print '%-8s%-8s%-8s%-8s' %('DEC','BIN','OCT','HEX') print '---------------------------' else: print '%-8s%-8s%-8s%-8s%-8s' %('DEC','BIN','OCT','HEX','ASCII') print '-------------------------------------' for i in range(start,end+1): if i>=33 and i<=126: print '%-8d%-8s%-8s%-8s%-8s' % (i,bin(i),oct(i),hex(i),chr(i)) else: print '%-8d%-8s%-8s%-8s' % (i,bin(i),oct(i),hex(i)) if __name__=='__main__': start = raw_input('请输入起始值:') end = raw_input('请输入结束值:') test(int(start),int(end))
13.略
相关文章推荐
- 《Python核心编程》第八章练习解析
- 《python核心编程第二版》第六章练习解析
- 《python核心编程第二版》第五章练习解析
- 《python核心编程第二版》第二章练习答案解析
- 《python核心编程第二版》第四章练习解析
- 《python核心编程第二版》第七章练习解析
- 记录——《C Primer Plus (第五版)》第八章编程练习第二题
- sass语法练习解析--实例练习
- 【c基础练习】c语言实现配置文件解析
- 练习项目GitHub地址-我的博客园首页RSS解析-Android
- C primer plus 第八章 练习1:
- xml练习案例(使用Dom4j解析)
- HTMLParser解析网页,提取链接地址、标题名称,并插入数据库 分类: python 小练习 HTMLParser 2014-02-19 09:57 519人阅读 评论(0) 收藏
- dom4j解析xml练习源码
- simply scheme 第八章 练习
- 第八章上机练习3 老师答案
- 第八章 8.2.1节练习
- RSS阅读器练习笔记————xml文件解析中CDATA及HTML字符实体的处理
- sql在线练习网站(http://sqlzoo.cn)答案解析(1)
- Java编程思想第四版第八章练习