<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xylz,imxylz

    關注后端架構、中間件、分布式和并發編程

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks
    8-4.

    Prime Numbers. We presented some code in this chapter to determine a number's largest factor or if it is prime. Turn this code into a Boolean function called isprime() such that the input is a single value, and the result returned is true if the number is prime and False otherwise.

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0804.py 164 2010-06-28 12:49:39Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9
    10def isprime(num):
    11    if num <= 1return False
    12    cnt = num / 2
    13    while cnt > 1:
    14        if num % cnt == 0:
    15            return False
    16        cnt -= 1
    17    return True
    18
    19if __name__ == '__main__':
    20    
    21    assert True == isprime(7)
    22    assert False == isprime(8)
    23    assert True == isprime(19)
    24    assert False == 0
    25
    8-5.

    Factors. Write a function called getfactors() that takes a single integer as an argument and returns a list of all its factors, including 1 and itself.

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0805.py 156 2010-06-21 07:24:12Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9
    10def getfactors (num):
    11    if num==0: return []
    12    if num==1return [1]
    13    cnt = num /2
    14    ret=[]
    15    for i in range(1,cnt+1,1) :
    16        if num % i ==0: ret.append(i)
    17    ret.append(num)
    18    return ret
    19        
    20 
    21
    22if __name__ == '__main__':
    23    assert [1,2,5,10== getfactors(10)
    24    assert [1,5== getfactors(5)
    25    assert [1== getfactors(1)
    26    assert [] == getfactors(0)
    27
    8-6.

    Prime Factorization. Take your solutions for isprime() and getfactors() in the previous problems and create a function that takes an integer as input and returns a list of its prime factors. This process, known as prime factorization, should output a list of factors such that if multiplied together, they will result in the original number. Note that there could be repeats in the list. So if you gave an input of 20, the output would be [2, 2, 5].

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0806.py 157 2010-06-21 07:39:05Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9
    10def get_prime_factors (num):
    11    if num<1return []
    12    cnt = 2
    13    ret=[]
    14    max_factor = num /2
    15    while cnt <= max_factor:
    16        if num % cnt ==0:
    17            ret.append(cnt)
    18            num /= cnt
    19        else:
    20            cnt += 1
    21    return ret    
    22     
    23
    24if __name__ == '__main__':
    25    assert [2,5== get_prime_factors(10)
    26    assert [] == get_prime_factors(5)
    27    assert [2,2,5== get_prime_factors(20)
    28    assert [2,3,7== get_prime_factors(42)
    29    assert [2,7== get_prime_factors(14)
    30    assert [3,3,3== get_prime_factors(27)
    31
    8-7.

    Perfect Numbers. A perfect number is one whose factors (except itself) sum to itself. For example, the factors of 6 are 1, 2, 3, and 6. Since 1 + 2 + 3 is 6, it (6) is considered a perfect number. Write a function called isperfect() which takes a single integer input and outputs 1 if the number is perfect and 0 otherwise.

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0807.py 159 2010-06-21 08:29:21Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9
    10def isperfectnumber (num):
    11    if num<=2return False
    12    cnt = num / 2
    13    ret = 0 
    14    for i in range(1,cnt+1):
    15        if num % i == 0: ret += i
    16    return ret == num
    17    
    18
    19if __name__ == '__main__':
    20    assert True == isperfectnumber(6)
    21    for i in range(10000):
    22        if isperfectnumber(i):
    23            print i
    24        
    25        
    26
    8-11.

    Text Processing. Write a program to ask the user to input a list of names, in the format "Last Name, First Name," i.e., last name, comma, first name. Write a function that manages the input so that when/if the user types the names in the wrong order, i.e., "First Name Last Name," the error is corrected, and the user is notified. This function should also keep track of the number of input mistakes. When the user is done, sort the list, and display the sorted names in "Last Name, First Name" order.

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0811.py 163 2010-06-21 15:53:21Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9from string import printable
    10
    11def sort_name(cnt):
    12    err_cnt = 0
    13    i=0
    14    flnames = []
    15    while i<cnt:
    16        fixit = False
    17        try:
    18            s=raw_input('Please enter name %s: ' % i)
    19            if ',' in s:
    20                names = s.split(',')
    21            else:
    22                names = s.split()
    23                if len(names) ==2
    24                    fixit = True
    25            if len(names)!=2raise ValueError
    26            flnames.append(list(s.strip() for s in names))
    27            i += 1
    28            if fixit:
    29                raise ValueError
    30        except:
    31            err_cnt +=1
    32            print "Wrong formatshould be Last, First."
    33            print "You have done this %s time(s) already." % err_cnt,
    34            if fixit:
    35                print " Fix it "
    36            else:
    37                print
    38
    39    flnames.sort(cmp=lambda x,y:cmp(x[1],y[1]))
    40    print "The sorted list (by last name) is: "
    41    for fn in flnames:
    42        print "\t%s, %s" % (fn[0],fn[1]) 
    43  
    44if __name__ == '__main__':
    45    cnt = int(raw_input('Enter total number of names: '))
    46    print 
    47    sort_name(cnt) 
    48
    8-12.

    (Integer) Bit Operators. Write a program that takes begin and end values and prints out a decimal, binary, octal, hexadecimal chart like the one shown below. If any of the characters are printable ASCII characters, then print those, too. If none is, you may omit the ASCII column header.

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0812.py 164 2010-06-28 12:49:39Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9from string import printable
    10
    11def bit_operators(start,end):
    12    has_print = False
    13    ret = []
    14    for i in range(start,end+1):
    15        pc = ''
    16        if i <256 and chr(i) in printable:
    17            has_print = True
    18            pc = chr(i)
    19        ret.append((str(i),bin(i)[2:],oct(i)[1:],hex(i)[2:],pc))
    20    return (has_print,ret)
    21        
    22  
    23if __name__ == '__main__':
    24    start = int(raw_input('Enter begin value: '))
    25    end = int(raw_input('Enter end value: '))
    26    if start > end: 
    27        import sys
    28        sys.exit(0)
    29
    30    has_print,ret = bit_operators(start,end)
    31    width = ( len(str(end)), len(bin(end))-2, len(oct(end))-1, len(hex(end))-21 )
    32    title = ( 'DEC''BIN''OCT''HEX''ASCII')
    33    width = tuple( max(x,len(y)) for x,y in zip(width,title) )
    34    full_title = None
    35    if has_print:
    36        print " ".join(list(s.rjust(w) for s,w in zip(title,width)))
    37        print "-".join(list(('-'*len(s)).rjust(w,'-'for s,w in zip(title,width)))
    38    else:
    39        print " ".join(list(s.rjust(w) for s,w in zip(title[:-1],width[:-1])))
    40        print "-".join(list(('-'*len(s)).rjust(w,'-'for s,w in zip(title[:-1],width[:-1])))
    41    
    42    for item in ret:
    43        print " ".join(list(s.rjust(w) for s,w in zip(item,width)))
    44            
    45            
    46            
    47            
    48        
    49        
    50        
    51    
    52    
    53        
    54        
    55


    ©2009-2014 IMXYLZ |求賢若渴
    posted on 2010-06-28 20:56 imxylz 閱讀(16887) 評論(0)  編輯  收藏 所屬分類: Python

    ©2009-2014 IMXYLZ
    主站蜘蛛池模板: 亚洲AV区无码字幕中文色| 午夜免费福利小电影| 亚洲字幕在线观看| 亚洲综合日韩久久成人AV| 女人18毛片水最多免费观看| 日韩精品极品视频在线观看免费 | 一级女人18片毛片免费视频| 亚洲乱码在线卡一卡二卡新区| 亚洲成a人片在线观看中文动漫| 亚洲国产精品视频| 日韩免费视频播放| 四虎在线免费视频| 污污网站免费观看| 国产无遮挡裸体免费视频在线观看| 大片免费观看92在线视频线视频| 亚洲另类无码一区二区三区| 亚洲AV成人影视在线观看| 亚洲成综合人影院在院播放| 91亚洲va在线天线va天堂va国产| 久久精品国产亚洲综合色| 国产亚洲精品免费视频播放| heyzo亚洲精品日韩| 免费v片在线观看品善网| 国产乱子影视频上线免费观看| 成人在线视频免费| 午夜免费福利网站| 免费高清在线爱做视频| 在线a人片天堂免费观看高清| 国产精品久久久久久久久久免费| 国产在线观看片a免费观看 | 亚洲妇女熟BBW| 亚洲中文无码mv| 亚洲欧洲无码AV不卡在线| 亚洲中文无码mv| 老牛精品亚洲成av人片| 日本永久免费a∨在线视频| 特级做a爰片毛片免费看| 精品97国产免费人成视频| 热久久这里是精品6免费观看| a级成人毛片免费图片| 久操视频在线免费观看|