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]