Python核心編程-第八章-習題

  1.    x < 0 執行C; x > 0 執行B;x == 0 執行Dpython

  2. # -*- coding:utf-8 -*-
    
    f = int(raw_input(u'請輸入起始數字'.encode('gbk')))
    t = int(raw_input(u'請輸入結束數字'.encode('gbk')))
    i = int(raw_input(u'請輸入步長'.encode('gbk')))
    
    for eachnumber in range(f, t+1, i):
        print eachnumber,

 3.    a:range(10)app

        b:range(3, 16, 3)函數

        c:range(-20, 861, 220)code

4.    orm

# -*- coding:utf-8 -*-

def isprime(num):
    count = num / 2
    while count > 1:
        if not num % count:
            return False
        count -= 1
    else:
        return True

5.排序

# -*- coding:utf-8 -*-

def getfactors(num):
    factors = []
    count = 1
    while count <= num:
        if not num % count:
            factors.append(count)
        count += 1 
    return factors

6.索引


7.utf-8

# -*- coding:utf-8 -*-

def getfactors(num):
    factors = []
    count = 1
    while count <= num:
        if not num % count:
            factors.append(count)
        count += 1 
    return factors
    
def isperfect(num):
    factors = getfactors(num)[:-1]
    sumfator = 0
    for factor in factors:
        sumfator += factor
    if sumfator == num:
        return 1
    else:
        return 0

8.ci

# -*- coding:utf-8 -*-

def factorial(N):
    '''本函數返回給定參數N的階乘 N! '''
    factorial = 1
    for num in range(1, N+1):
        factorial *= num
    
    return factorial

9.get

# -*- coding:utf-8 -*-

def Fibonacci(N):
    Fibonacciseq = [1, 1]
    if N <= 2:
        return 1
    else:
        n = 3
        while n <= N:
            Fin = Fibonacciseq[n-3] + Fibonacciseq[n-2]
            Fibonacciseq.append(Fin)
            n += 1
        return Fibonacciseq[N-1]

10.


11.

# -*- coding:utf-8 -*-

print u'輸入的格式是姓-名,中間用英文逗號隔開'
namenum = int(raw_input(u'請輸入名字的個數:'.encode('gbk')))

names = []
errors = 0
for i in range(namenum):
    prompt = u'請輸入第 %d 個姓-名' % i 
    ai = raw_input(prompt.encode('gbk'))
    if ',' not in ai:
        errors += 1
        print u'格式輸錯了 %d 次,請注意!' % errors
        names.append(ai.replace(' ', ','))
    else:
        names.append(ai)
        
print u'按照姓氏排序後輸入的姓名以下:'
for name in names:
    print ' ' * 4,name

12.

# -*- coding:utf-8 -*-

print '-' * 20
startnum = int(raw_input(u'    請輸入起始值:'.encode('gbk')))
endnum = int(raw_input(u'    請輸入結束值:'.encode('gbk')))
listheada = u'十進制   二進制   八進制   十六進制   ASCII'
listheadb = '-' * 40

def stringformat(str1,str2):
    if len(str1) < len(str2):
        for j in range(len(str2)-len(str1)):
            str1 = '0' + str1
    return str1 
    
binend = bin(endnum)[2:]
octend = oct(endnum)[1:]
hexend = hex(endnum)[2:]

print listheada
print listheadb
for i in range(startnum, endnum+1):
    bini = bin(i)[2:]
    bini = stringformat(bini, binend)
    octi = oct(i)[1:]
    octi = stringformat(octi, octend)
    hexi = hex(i)[2:]
    hexi = stringformat(hexi, hexend)
    if i not in [0, 7, 8, 9, 10, 13, 32]: 
        print i, '     ', bini, '   ', octi, '     ', hexi, '       ', chr(i)
    else:
        print i, '     ', bini, '   ', octi, '     ', hexi

13.我的理解是  經過序列索引遍歷多了一些步驟 因此會變慢 

相關文章
相關標籤/搜索