Python 核心编程 第八章 练习题

来源:互联网 发布:酒神淘宝店地址 编辑:程序博客网 时间:2024/05/23 16:27
第2题
#!/usr/bin/env python
def printStep(starInt , endInt , step):
for i in range(0,(endInt - starInt) / step + 1):
print starInt + i * step,

print "Please Input StartNumber:",
beginInt = int(raw_input())
print "PLease Input LastNumber:",
endInt = int(raw_input())
print "Please Input The Step:",
steps = int(raw_input())
printStep(beginInt,endInt,steps)


第4题

#!/usr/bin/env python
def isPrime(P):
if P == 1 or P == 2:
return True
pt = 0
for i in range(1,P):
if P%i == 0:
pt += 1
if pt == 1:
return True
else:
return False

print isPrime(1)
print isPrime(2)
print isPrime(3)
print isPrime(8)
print isPrime(29)
print isPrime(33)
print isPrime(97)
print isPrime(110)

第5题

#!/sur/bin/env python
def getFactors(nu):
if nu == 0:
print [0]
return
if nu == 1:
print [0,1]
return
print [i for i in range(1,nu+1) if nu%i == 0]

getFactors(0)
getFactors(5)
getFactors(1)
getFactors(2)
getFactors(10)
getFactors(20)
getFactors(15)

第7题

#!/usr/bin/env python
def isPerfect(nu):
if nu == 0:
return True
if nu == 1:
return False
db = [i for i in range(1,nu) if nu%i == 0]
pt = 0
for i in db:
pt += i
if pt == nu:
return True
else:
return False

print isPerfect(3)
print isPerfect(6)
print isPerfect(25)
print isPerfect(7)
print isPerfect(24)

第8题

#!/sur/bin/env python
def getFactorial(nu):
if nu == 0:
print nu
return
pt = 1
for i in range(1,nu+1):
pt *= i
print pt

getFactorial(5)
getFactorial(10)
getFactorial(1)
getFactorial(0)

第9题

#!/usr/bin/env python
def sumList(nu):
if nu <= 2:
print 1
return

db = [1,1]
for i in range(2,nu):
db.append(db[i-1]+db[i-2])
print db[nu-1]

sumList(1)
sumList(7)
sumList(6)
sumList(8)

第10题

#!/usr/bin/env python
def testLetter(strings):
standLetter = "aeiouAEIOU"
splitLetter = " "
nuST = 0
nuSP = 1
for ch in strings:
if ch in standLetter:
nuST += 1
if ch in splitLetter:
nuSP += 1
return [nuST,nuSP]

print testLetter("Today is a good day.")

第11题

#!/usr/bin/env python
splitLetter = ","
n = 0
wrongTimes = 0
db = []
while True:
print "Please Input %d Name,'Q' To Quit:"%(n+1),
nm = raw_input()
if nm == "Q":
break
splitIndex = 0
for ch in nm: #check "nm" is on level or not
if ch == splitLetter and nm[-1] != splitLetter:
splitIndex = nm.index(ch)
break

if splitIndex == 0:
print "It Isn't A Name That's On Level."
wrongTimes += 1
continue
else:
n += 1
newName = nm[splitIndex+1:] + splitLetter + nm[0:splitIndex]
db.append(newName)

for nms in db:
print nms

第12题

#!/usr/bin/env python
def printList(beginInt,endInt):
db = []
for i in range(beginInt,endInt+1):
ASC = None
if i>=33 and i <=126:
ASC = chr(i)
db.append([i,bin(i),oct(i),hex(i),ASC])

for L in db:
print L

print "Please Input First Integer:",
FI = int(raw_input())
print "Please Input Last Integer:",
LI = int(raw_input())
printList(FI,LI)

0 0