python核心编程第二版 第8章课后题

8-4  素数
def isprime(x):
    for i in range(2,x):
        if x%i!=0:
            return True
        else:
            return False

8-6 素因子分解

def isprime(x):  #素数
    if x==1 :
        return True
    elif x==2:
        return True
    else:
        for i in range(2,x):
            if x%i!=0:
                return True
            else:
                return False
def getfactors(x): #约数
    list1=[]
    for i in range(1,x+1):
        if x%i==0:
            list1.append(i)
    return list1
def fenjie(x):  #素因子分解
    list2=[]
    for i in getfactors(x):
        if isprime(i):
            list2.append(i)
    return list2
 
 

8-7 完全数

def ispefact(x):
    list1=[]
    for i in range(1,x):
        if x%i==0:
            list1.append(i)
    Sum=0
    for j in list1:
        Sum+=j
    if Sum==x:
        return 1
    else:
        return 0
 

8-8 阶乘

def factorial(x):
    mul=1
    for i in range(1,x+1):
        mul*=i
    return mul


def factorial(x):
    if x==1 or x==0:
        return 1
    return factorial(x-1)*x
 

8-9 斐波那契数列
def feibonaqi(N):
    if N==1 or N==2:
        return 1
    else:
        return feibonaqi(N-1)+feibonaqi(N-2)
 

8-11文本处理

count=0
namelist=[]
num=int(raw_input('Enter total number of names: '))
for i in range(num):
    name=raw_input('Please enter name %d:' %i)


    if ',' not in name:
        print 'Wrong format...should be last,First'
        count+=1
        print 'You have done this %d times already.Fixing input...' %count
    else:
        namelist.append(name)
print 'The sorted list(by lat name) is:%s' %sorted(namelist)
 

8-12(整型)位操作

#encoding=utf-8
import string
begin=int(raw_input('输入起始值: '))
end=int(raw_input('输入结束值: '))

print'DEC  \tBIN       \tOCT  \tHEX  \tASCII'
for i in range(begin,end+1):
    if chr(i) in string.printable:
        print'%d\t%s    \t%s\t%s\t%s' %(i,bin(i),oct(i),hex(i),chr(i))
    else:
        print'%d\t%s    \t%s\t%s' %(i,bin(i),oct(i),hex(i))
 

8-13 程序执行性能

通过序列索引遍历,例如:
for namIndex in range(len(nameList)):
    printnameList[nameIndex]
每次迭代都得计算一次长度len(nameList),浪费时间和内存,可将其另存为一个变量,再调用,比如:
length=len(nameList)
for namIndex in range(length):
    printnameList[nameIndex]  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值