Python

作者: starcn530 | 来源:发表于2017-02-04 22:28 被阅读0次

    1.

    list = [1, 2, 3, 4, 5, 2, 6, 7, 2]
    pos = 0
    for i in range(list.count(2)):
        if pos == 0:
            pos = list.index(2)
        else:
            pos = list.index(2, pos + 1)
        print 'find pos: ', pos
    

    2.

    #递归n的阶乘
    def factorial(n):
        if n == 1:
            return 1
        else:
            return n * factorial(n-1)
    print factorial(10) 
    
    def factorial(n):
        i = 1
        if n > 1:
            i = n
            n = n * factorial(n-1)
        print "%d! = " %i, n
        return n    
    factorial(10)
    
    from functools import reduce
    print "10! =", reduce(lambda x, y: x * y, range(1, 11))
    

    3.

    #定义一个函数,实现输入n,输出0-n之间的所有素数
    def isPrime(n):        
        for i in range(0, n + 1):
            if i == 0:
                print i, 'is not prime'
            elif i == 1:
                print i, 'is not prime'
            else:
                for j in range(2, i):
                    if i % j == 0:
                        print i, 'is not prime'
                        break
                else:
                    print i, 'is prime'
    isPrime(100)  
    

    4.

    #判断一个数是否为素数
    def isPrime(n):
        if n > 1:
            for i in range(2, n):
                if n % i == 0:
                    print n, 'is not prime'
                    break
            else:
                print n, 'is prime'
        else:
            print n, 'is not prime'  
    isPrime(100) 
    

    5.

    #可变参数列表
    def test(tep, *args):
        print args
    test(1, 2, 3, 4, 5) 
    

    6.

    #关键字参数
    def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
        print "-- This parrot wouldn't", action,
        print "if you put", voltage, "volts through it."
        print "-- Lovely plumage, the", type
        print "-- It's", state, "!"
    parrot(1000)                                          # 1 positional argument
    parrot(voltage=1000)                                  # 1 keyword argument
    parrot(voltage=1000000, action='VOOOOOM')             # 2 keyword arguments
    parrot(action='VOOOOOM', voltage=1000000)             # 2 keyword arguments
    parrot('a million', 'bereft of life', 'jump')         # 3 positional arguments
    parrot('a thousand', state='pushing up the daisies')  # 1 positional, 1 keyword  
    

    7.

    #默认参数值
    def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
        while True:
            ok = raw_input(prompt)
            if ok in ('y', 'ye', 'yes'):
                return True
            if ok in ('n', 'no', 'nop', 'nope'):
                return False
            retries = retries - 1
            if retries < 0:
                raise IOError('refusenik user')
            print complaint
    #ask_ok('Do you really want to quit?')
    #ask_ok('OK to overwrite the file?', 2)
    ask_ok('OK to overwrite the file?', 2, 'Come on, only yes or no!') 
    

    8.

    # write Fibonacci series up to n
    def fib(n):    
        """Print a Fibonacci series up to n."""
        a, b = 0, 1
        while a < n:
            print a,
            a, b = b, a+b
    # Now call the function we just defined:      
    fib(2000)  
    fibs = [0, 1]
    num = input('How many Fibonacci numbers do you want? ')
    for i in range(num - 2):
        fibs.append(fibs[-2] + fibs[-1])
    print fibs  
    

    9.

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    import sys
    count = 0
    while True:
        print u"选择你要暂停的行: ",
        print_num = input('')
        while count < 500:
            if print_num <= count:
                if print_num == count:
                    print u"你要暂停的行为 ", print_num
                    print u"是否要继续(y/n)",
                    choice = raw_input('')
                    if choice == 'n':
                        sys.exit()
                    else:
                        break
                else:
                    if print_num <= count:
                        print u"已经过去了"
                break
            else:
                count +=1
                print '现在是第%d行 '  %count 
    

    10.

    #!/usr/bin/env python
    #-*- coding: utf8 -*-
    print_num = input('Which loop do you want it to be printed out?')
    count = 0
    while count < 10000000:
        if count == print_num:
            print 'There you get the number:', count
            choice = raw_input('Do you want to continue the loop?(y/n)')
            if choice == 'n':
                break
            else:
                while print_num <= count:
                    print_num = input('Which loop do you want it to be printed out?')
                    if print_num <= count:
                        print u"已经过了"
        else:
            print 'Loop:', count
        count +=1
    else:
        print 'Loop:', count
    

    11.

    #!-*- coding: utf-8 -*-
    #!/usr/bin/env python
    import sys
    import os
    retry_limit = 3
    retry_count = 0
    account_file = 'account.txt'
    lock_file = 'account_lock.txt'
    while retry_count < retry_limit:
        username = raw_input('\033|32;1mUsername: \033|0m')
        lock_check = file(lock_file)
        for line in lock_check.readlines():
            line = line.split()
            if username == line[0]:
                sys.exit('\033|31;1mUsername %s is locked!\033|0m')
        password = raw_input('\033|32;1mPassword:\033|0m')
        f = file(account_file, 'rb')
        match_flag = False
        for line in f.readlines():
            user, passwd = line.strip('\n').split()
            if username == user and password == passwd:
                print 'Match!', username
                match_flag  = True
                break
        f.close()
        if match_flag == False:
            print 'User unmatched!'
            retry_count +=1
        else:
            print "Welcom login OldBoy Learning system!"
    else:
        print "Your account is locked!"
        f = file(lock_file, 'ab')
        #f.write(username + "\r\n")
        f.write('%s%s' %(username,os.linesep))
        f.close() 
    

    12.

    #词频统计
    import string
    
    with open('words.txt','r') as text:
        words = [raw_word.strip(string.punctuation).lower() for raw_word in text.read().split()]
        words_index = set(words)
        counts_dict = {index:words.count(index) for index in words_index}
    for word in sorted(counts_dict,key=lambda x: counts_dict[x],reverse=True):
        print '{} -- {} times'.format(word,counts_dict[word])
    

    13.

    #sorted函数按value值对字典排序
    dic = {'a':31, 'bc':5, 'c':3, 'asd':4, '33':56, 'd':0}
    print sorted(dic.iteritems(), key=lambda d:d[1], reverse = False)
    print sorted(dic.iteritems(), key=lambda d:d[0], reverse = False)
    print sorted(dic.items(), key=lambda d:d[1], reverse = False)
    print sorted(dic.items(), key=lambda d:d[0], reverse = False)
    print sorted(dic, key=lambda d:dic[d] reverse = False)
    

    14.

    #字符串的反转
    def reverse(s):
        return s[::-1]
    
    s = "hello world"
    print reverse(s)
    

    15.

    #字符串与日期的转换
    import time
    import datetime
    print time.strftime("%Y-%m-%d %X", time.localtime())
    t = time.strptime("2008-08-08", "%Y-%m-%d")
    y, m, d = t[0:3]
    print datetime.datetime(y, m, d)
    

    16

    #正则表达式示例
    import re
    pattern = re.compile(r"[(]?\d{3}[)-]?\d{8}")
    match = pattern.match("(755)12345678")
    if match:
        print match.group()
    

    相关文章

      网友评论

          本文标题:Python

          本文链接:https://www.haomeiwen.com/subject/omesittx.html