ÀÖÓãµç¾º

  • ½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

    È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

    python¹¦ÄÜÌØÉ«·ÖÏí

    ¸üÐÂʱ¼ä:2019Äê01ÔÂ02ÈÕ16ʱ35·Ö À´Ô´:pythonÅàѵ ä¯ÀÀ´ÎÊý:

    PythonÒѾ­³ÉΪ½ÏÊÜ»¶Ó­µÄ³ÌÐòÉè¼ÆÓïÑÔÖ®Ò»¡£×Ô´Ó2004ÄêÒÔºó£¬pythonµÄʹÓÃÂʳÊÏßÐÔÔö³¤¡£2011Äê1Ô£¬Ëü±»TIOBE±à³ÌÓïÑÔÅÅÐаñÆÀΪ2010Äê¶ÈÓïÑÔ¡£×Ô´Ó20ÊÀ¼Í90Äê´ú³õPythonÓïÑÔµ®ÉúÖÁ½ñ£¬ËüÒѱ»Ö𽥹㷺ӦÓÃÓÚϵͳ¹ÜÀíÈÎÎñµÄ´¦ÀíºÍWeb±à³Ì¡£

    ÔÚʹÓÃPython¶àÄêÒÔºó£¬ÎÒżȻ·¢ÏÖÁËһЩÎÒÃǹýÈ¥²»ÖªµÀµÄ¹¦ÄܺÍÌØÐÔ¡£Ò»Ð©¿ÉÒÔ˵ÊǷdz£ÓÐÓ㬵«È´Ã»Óгä·ÖÀûÓ᣿¼Âǵ½ÕâÒ»µã£¬Îұ༭ÁËһЩÄãÓ¦¸ÃÁ˽âµÄPython¹¦ÄÜÌØÉ«¡£

    python¹¦ÄÜÌØÉ«·ÖÏí

    ´øÈÎÒâÊýÁ¿²ÎÊýµÄº¯Êý

    Äã¿ÉÄÜÒѾ­ÖªµÀÁËPythonÔÊÐíÄ㶨Òå¿ÉÑ¡²ÎÊý¡£µ«»¹ÓÐÒ»¸ö·½·¨£¬¿ÉÒÔ¶¨Ò庯ÊýÈÎÒâÊýÁ¿µÄ²ÎÊý¡£

    ÓÅÏÈ£¬¿´ÏÂÃæÊÇÒ»¸öÖ»¶¨Òå¿ÉÑ¡²ÎÊýµÄÀý×Ó£º

    def function(arg1="", arg2=""):

    print "arg1: {0}".format(arg1)

    print "arg2: {0}".format(arg2)

    function("Hello", "World")

    # prints args1: Hello

    # prints args2: World

    function()

    # prints args1:

    # prints args2:

    ÏÖÔÚ£¬ÈÃÎÒÃÇ¿´¿´Ôõô¶¨ÒåÒ»¸ö¿ÉÒÔ½ÓÊÜÈÎÒâ²ÎÊýµÄº¯Êý¡£ÎÒÃÇÀûÓÃÔª×éÀ´ÊµÏÖ¡£

    def foo(*args):

    # just use "*" to collect all remaining arguments into a tuple

    numargs = len(args)

    print "Number of arguments: {0}".format(numargs)

    for i, x in enumerate(args):

    print "Argument {0} is: {1}".format(i, x)

    foo()

    # Number of arguments: 0

    foo("hello")

    # Number of arguments: 1

    # Argument 0 is: hello

    foo("hello", "World", "Again")

    # Number of arguments: 3

    # Argument 0 is: hello

    # Argument 1 is: World

    # Argument 2 is: Again

    С±à²¹³ä£º¸üÒ»°ãµÄº¯Êý¶¨Ò巽ʽÊÇdef fun(*args,**kwargs)£¬¿ÉÒÔÔÚÐí¶àPythonÔ´ÂëÖз¢ÏÖÕâÖÖ¶¨Ò壬ÆäÖÐ*args±íʾÈκζà¸öÎÞÃû²ÎÊý£¬Ëü±¾ÖÊÊÇÒ»¸öÔª×étuple;**kwargs±íʾ¹Ø¼ü×Ö²ÎÊý£¬Ëü±¾ÖÊÉÏÊÇÒ»¸ö×Öµädict¡£

    ʹÓÃGlob()²éÕÒÎļþ

    ´ó¶àPythonº¯ÊýÓÐ×ų¤ÇÒ¾ßÓÐÃèÊöÐÔµÄÃû×Ö¡£µ«ÊÇÃüÃûΪglob()µÄº¯ÊýÄã¿ÉÄܲ»ÖªµÀËüÊǸÉʲôµÄ³ý·ÇÄã´Ó±ð´¦ÒѾ­ÊìϤËüÁË¡£

    ËüÏñÊÇÒ»¸ö¸üÇ¿´ó°æ±¾µÄlistdir()º¯Êý¡£Ëü¿ÉÒÔÈÃÄãͨ¹ýʹÓÃģʽƥÅäÀ´ËÑË÷Îļþ¡£

    import glob

    # get all py files

    files = glob.glob('*.py')

    print files

    # Output

    # ['arg.py', 'g.py', 'shut.py', 'test.py']

    Äã¿ÉÒÔÏñÏÂÃæÕâÑù²éÕÒ¶à¸öÎļþÀàÐÍ£º

    import itertools as it, glob

    def multiple_file_types(*patterns):

    return it.chain.from_iterable(glob.glob(pattern) \

    for pattern in patterns)

    for filename in multiple_file_types("*.txt", "*.py"):

    # add as many filetype arguements

    print filename

    # output

    # =========#

    # test.txt

    # arg.py

    # g.py

    # shut.py

    # test.py

    Èç¹ûÄãÏëµÃµ½Ã¿¸öÎļþµÄ¾ø¶Ô·¾¶£¬Äã¿ÉÒÔÔÚ·µ»ØÖµÉϵ÷ÓÃrealpath()º¯Êý£º

    import itertools as it, glob, os

    def multiple_file_types(*patterns):

    return it.chain.from_iterable(glob.glob(pattern) \

    for pattern in patterns)

    for filename in multiple_file_types("*.txt", "*.py"):

    # add as many filetype arguements

    realpath = os.path.realpath(filename)

    print realpath

    # output

    #=========#

    # C:\xxx\pyfunc\test.txt

    # C:\xxx\pyfunc\arg.py

    # C:\xxx\pyfunc\g.py

    # C:\xxx\pyfunc\shut.py

    # C:\xxx\pyfunc\test.py

    µ÷ÊÔ

    ÏÂÃæµÄÀý×ÓʹÓÃinspectÄ£¿é¡£¸ÃÄ£¿éÓÃÓÚµ÷ÊÔÄ¿µÄʱÊǷdz£ÓÐÓõÄ£¬ËüµÄ¹¦ÄÜÔ¶±ÈÕâÀïÃèÊöµÄÒª¶à¡£

    ÕâÆªÎÄÕ²»»á¸²¸ÇÕâ¸öÄ£¿éµÄÿ¸öϸ½Ú£¬µ«»áչʾ¸øÄãһЩÓÃÀý¡£

    import logging, inspect

    logging.basicConfig(level=logging.INFO,

    format='%(asctime)s %(levelname)-8s %(filename)s:%(lineno)-4d: %(message)s',

    datefmt='%m-%d %H:%M',

    )

    logging.debug('A debug message')

    logging.info('Some information')

    logging.warning('A shot across the bow')

    def test():

    frame, filename, line_number, function_name, lines, index = \

    inspect.getouterframes(inspect.currentframe())[1]

    print(frame, filename, line_number, function_name, lines, index)

    test()

    # Should print the following (with current date/time of course)

    # 10-19 19:57 INFO test.py:9 : Some information

    # 10-19 19:57 WARNING test.py:10 : A shot across the bow

    # (, 'C:/xxx/pyfunc/magic.py', 16, '', ['test()\n'], 0)

    Éú³ÉΨһID

    ÔÚÓÐЩÇé¿öÏÂÄãÐèÒªÉú³ÉÒ»¸öΨһµÄ×Ö·û´®¡£ÎÒ¿´µ½ºÜ¶àÈËʹÓÃmd5()º¯ÊýÀ´´ïµ½´ËÄ¿µÄ£¬µ«Ëüȷʵ²»ÊÇÒÔ´ËΪĿµÄ¡£

    ÆäʵÓÐÒ»¸öÃûΪuuid()µÄPythonº¯ÊýÊÇÓÃÓÚÕâ¸öÄ¿µÄµÄ¡£

    import uuid

    result = uuid.uuid1()

    print result

    # output => various attempts

    # 9e177ec0-65b6-11e3-b2d0-e4d53dfcf61b

    # be57b880-65b6-11e3-a04d-e4d53dfcf61b

    # c3b2b90f-65b6-11e3-8c86-e4d53dfcf61b

    Äã¿ÉÄÜ»á×¢Òâµ½£¬¼´Ê¹×Ö·û´®ÊÇΨһµÄ£¬µ«ËüÃǺó±ßµÄ¼¸¸ö×Ö·û¿´ÆðÀ´ºÜÏàËÆ¡£ÕâÊÇÒòΪÉú³ÉµÄ×Ö·û´®ÓëµçÄÔµÄMACµØÖ·ÊÇÏàÁªÏµµÄ¡£

    ΪÁ˼õÉÙÖØ¸´µÄÇé¿ö£¬Äã¿ÉÒÔʹÓÃÕâÁ½¸öº¯Êý¡£

    import hmac, hashlib

    key = '1'

    data = 'a'

    print hmac.new(key, data, hashlib.sha256).hexdigest()

    m = hashlib.sha1()

    m.update("The quick brown fox jumps over the lazy dog")

    print m.hexdigest()

    # c6e693d0b35805080632bc2469e1154a8d1072a86557778c27a01329630f8917

    # 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

    ÐòÁл¯

    ÄãÔø¾­ÐèÒª½«Ò»¸ö¸´ÔӵıäÁ¿´æ´¢ÔÚÊý¾Ý¿â»òÎı¾ÎļþÖаÉ?Äã²»ÐèÒªÏëÒ»¸öÆæÌØµÄ·½·¨½«Êý×é»ò¶ÔÏó¸ñת»¯ÎªÊ½»¯×Ö·û´®£¬ÒòΪPythonÒѾ­ÌṩÁ˴˹¦ÄÜ¡£

    import pickle

    variable = ['hello', 42, [1, 'two'], 'apple']

    # serialize content

    file = open('serial.txt', 'w')

    serialized_obj = pickle.dumps(variable)

    file.write(serialized_obj)

    file.close()

    # unserialize to produce original content

    target = open('serial.txt', 'r')

    myObj = pickle.load(target)

    print serialized_obj

    print myObj

    # output

    # (lp0

    # S'hello'

    # p1

    # aI42

    # a(lp2

    # I1

    # aS'two'

    # p3

    # aaS'apple'

    # p4

    # a.

    # ['hello', 42, [1, 'two'], 'apple']

    ÕâÊÇÒ»¸öÔ­ÉúµÄPythonÐòÁл¯·½·¨¡£È»¶ø½ü¼¸ÄêÀ´JSON±äµÃÁ÷ÐÐÆðÀ´£¬PythonÌí¼ÓÁ˶ÔËüµÄÖ§³Ö¡£ÏÖÔÚÄã¿ÉÒÔʹÓÃJSONÀ´±à½âÂë¡£

    import json

    variable = ['hello', 42, [1, 'two'], 'apple']

    print "Original {0} - {1}".format(variable, type(variable))

    # encoding

    encode = json.dumps(variable)

    print "Encoded {0} - {1}".format(encode, type(encode))

    # deccoding

    decoded = json.loads(encode)

    print "Decoded {0} - {1}".format(decoded, type(decoded))

    # output

    # Original ['hello', 42, [1, 'two'], 'apple'] -

    # Encoded ["hello", 42, [1, "two"], "apple"] -

    # Decoded [u'hello', 42, [1, u'two'], u'apple'] -

    ÕâÑù¸ü½ô´Õ£¬¶øÇÒ½ÏÖØÒªµÄÊÇÓëJavaScriptºÍÐí¶àÆäËûÓïÑÔ¼æÈÝ¡£È»¶ø¶ÔÓÚ¸´ÔӵĶÔÏ󣬯äÖеÄһЩÐÅÏ¢¿ÉÄܶªÊ§¡£

    ѹËõ×Ö·û

    µ±Ì¸ÆðѹËõʱÎÒÃÇͨ³£Ïëµ½Îļþ£¬±ÈÈçZIP½á¹¹¡£ÔÚPythonÖÐÒ²¿ÉÒÔѹËõ³¤×Ö·û£º

    import zlib

    string = """ Lorem ipsum dolor sit amet, consectetur

    adipiscing elit. Nunc ut elit id mi ultricies

    adipiscing. Nulla facilisi. Praesent pulvinar,

    sapien vel feugiat vestibulum, nulla dui pretium orci,

    non ultricies elit lacus quis ante. Lorem ipsum dolor

    sit amet, consectetur adipiscing elit. Aliquam

    pretium ullamcorper urna quis iaculis. Etiam ac massa

    sed turpis tempor luctus. Curabitur sed nibh eu elit

    mollis congue. Praesent ipsum diam, consectetur vitae

    ornare a, aliquam a nunc. In id magna pellentesque

    tellus posuere adipiscing. Sed non mi metus, at lacinia

    augue. Sed magna nisi, ornare in mollis in, mollis

    sed nunc. Etiam at justo in leo congue mollis.

    Nullam in neque eget metus hendrerit scelerisque

    eu non enim. Ut malesuada lacus eu nulla bibendum

    id euismod urna sodales. """

    print "Original Size: {0}".format(len(string))

    compressed = zlib.compress(string)

    print "Compressed Size: {0}".format(len(compressed))

    decompressed = zlib.decompress(compressed)

    print "Decompressed Size: {0}".format(len(decompressed))

    # output

    # Original Size: 1022

    # Compressed Size: 423

    # Decompressed Size: 1022

    ×¢²áShutdownº¯Êý

    ÓпÉÄ£¿é½Ðatexit£¬Ëü¿ÉÒÔÈÃÄãÔڽű¾ÔËÐÐÍêºóÁ¢ÂíÖ´ÐÐһЩ´úÂë¡£

    ¼ÙÈçÄãÏëÔڽű¾Ö´ÐнáÊøÊ±²âÁ¿Ò»Ð©»ù×¼Êý¾Ý£¬±ÈÈçÔËÐÐÁ˶೤ʱ¼ä£º

    import atexit

    import time

    import math

    def microtime(get_as_float=False):

    if get_as_float:

    return time.time()

    else:

    return '%f %d' % math.modf(time.time())

    start_time = microtime(False)

    atexit.register(start_time)

    def shutdown():

    global start_time

    print "Execution took: {0} seconds".format(start_time)

    atexit.register(shutdown)

    # Execution took: 0.297000 1387135607 seconds

    # Error in atexit._run_exitfuncs:

    # Traceback (most recent call last):

    # File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs

    # func(*targs, **kargs)

    # TypeError: 'str' object is not callable

    # Error in sys.exitfunc:

    # Traceback (most recent call last):

    # File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs

    # func(*targs, **kargs)

    # TypeError: 'str' object is not callable

    ´òÑÛ¿´À´ºÜ¼òµ¥¡£Ö»ÐèÒª½«´úÂëÌí¼Óµ½½Å±¾µÄ½Ïµ×²ã£¬Ëü½«Ôڽű¾½áÊøÇ°ÔËÐС£µ«Èç¹û½Å±¾ÖÐÓÐÒ»¸öÖÂÃü´íÎó»òÕ߽ű¾±»Óû§ÖÕÖ¹£¬Ëü¿ÉÄܾͲ»ÔËÐÐÁË¡£

    µ±ÄãʹÓÃatexit.register()ʱ£¬ÄãµÄ´úÂë¶¼½«Ö´ÐУ¬²»Â۽ű¾ÒòΪʲôԭÒòÍ£Ö¹ÔËÐС£

    0 ·ÖÏíµ½£º
    ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
    ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿