第一次個人編程作業


https://github.com/Bngel/061900209

一、PSP表格

個人開發流程 預估耗時(分鍾) 實際耗時(分鍾)
計划 60 180
估計這個任務需要多少時間 180 360
開發 60 180
需求分析 (包括學習新技術) 20 60
生成設計文檔 0 0
設計復審 0 0
代碼規范 (為目前的開發制定合適的規范) 0 0
具體設計 60 240
具體編碼 60 180
代碼復審 120 180
測試(自我測試,修改代碼,提交修改) 10 60
報告 0 0
測試報告 0 0
計算工作量 0 0
事后總結, 並提出過程改進計划 30 10

二、計算模塊接口

計算模塊接口的設計與實現過程

  1. 第一時間搜索Github. 成功找到一些可以使用的第三方庫
  2. 但是第三方庫的文檔比較舊, 因此花了一些時間進行學習使用

計算模塊接口部分的性能改進

  1. 通過對算法的改進優化了部分的運行速率
21238739 function calls (20746056 primitive calls) in 88.500 seconds
   Ordered by: standard name
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        3    0.000    0.000    0.000    0.000 :0(__import__)
     7299    0.016    0.000    0.016    0.000 :0(_abc_instancecheck)
        6    0.000    0.000    0.000    0.000 :0(any)
   916409    1.328    0.000    1.328    0.000 :0(append)
     1531    0.000    0.000    0.000    0.000 :0(bin)
    34242    0.031    0.000    0.031    0.000 :0(callable)
        3    0.000    0.000    0.000    0.000 :0(cast)
        3    0.000    0.000    0.000    0.000 :0(compile)
     1531    0.000    0.000    0.000    0.000 :0(count)
        3    0.000    0.000    0.000    0.000 :0(decode)
        1    0.000    0.000   88.500   88.500 :0(exec)
   474099    1.141    0.000    1.141    0.000 :0(extend)
       24    0.000    0.000    0.000    0.000 :0(find)
     1440    0.016    0.000    0.016    0.000 :0(finditer)
      399    0.000    0.000    0.000    0.000 :0(format)
        6    0.000    0.000    0.000    0.000 :0(fromkeys)
       16    0.000    0.000    0.000    0.000 :0(fspath)
   361039    0.906    0.000    0.906    0.000 :0(get)
   145478    0.281    0.000    0.281    0.000 :0(group)
        6    0.000    0.000    0.000    0.000 :0(hasattr)
   244980    0.469    0.000    0.469    0.000 :0(id)
     1156    0.000    0.000    0.000    0.000 :0(index)
     7315    0.031    0.000    0.031    0.000 :0(insert)
        9    0.000    0.000    0.000    0.000 :0(isdigit)
  1666165    2.656    0.000    2.688    0.000 :0(isinstance)
   149505    0.391    0.000    0.391    0.000 :0(items)
409776/165435    1.328    0.000    2.094    0.000 :0(join)
      880    0.000    0.000    0.000    0.000 :0(keys)
715615/715577    1.188    0.000    1.188    0.000 :0(len)
   556523    1.562    0.000    1.562    0.000 :0(match)
       21    0.000    0.000    0.000    0.000 :0(max)
     1705    0.000    0.000    0.000    0.000 :0(min)
    16882    0.078    0.000    0.094    0.000 :0(next)
        3    0.000    0.000    0.000    0.000 :0(open)
        3    0.000    0.000    0.000    0.000 :0(open_code)
   108720    0.281    0.000    0.281    0.000 :0(ord)
   251375    0.484    0.000    0.484    0.000 :0(pop)
      394    0.016    0.000    0.016    0.000 :0(print)
        3    0.000    0.000    0.000    0.000 :0(read)
      485    0.000    0.000    0.000    0.000 :0(readline)
   610770    1.000    0.000    1.000    0.000 :0(replace)
        3    0.000    0.000    0.000    0.000 :0(rstrip)
        3    0.016    0.005    0.016    0.005 :0(search)
        1    0.000    0.000    0.000    0.000 :0(setprofile)
        1    0.016    0.016    0.062    0.062 :0(sorted)
      393    0.000    0.000    0.000    0.000 :0(span)
   113844    0.250    0.000    0.250    0.000 :0(split)
    25493    0.078    0.000    0.078    0.000 :0(startswith)
      483    0.000    0.000    0.000    0.000 :0(strip)
   298996    1.375    0.000    2.234    0.000 :0(sub)
     7891    0.047    0.000    0.203    0.000 :0(sum)
     1624    0.016    0.000    0.016    0.000 :0(time)
        3    0.000    0.000    0.000    0.000 :0(tolist)
        3    0.000    0.000    0.000    0.000 :0(translate)
       46    0.000    0.000    0.000    0.000 :0(unicode_iscased)
       25    0.000    0.000    0.000    0.000 :0(unicode_tolower)
        2    0.000    0.000    0.000    0.000 :0(update)
       12    0.000    0.000    0.000    0.000 :0(utf_8_decode)
        1    0.000    0.000    0.000    0.000 :0(values)
        3    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:969(get_data)
        1    0.000    0.000   88.500   88.500 <string>:1(<module>)
        3    0.000    0.000   41.469   13.823 __init__.py:103(load)
   149498    0.688    0.000    7.609    0.000 __init__.py:8(convert)
   149498    1.984    0.000    5.156    0.000 _utils.py:53(replace_symbol_to_number)
   145085    0.578    0.000    0.859    0.000 _utils.py:55(_replace)
   149498    0.812    0.000    6.359    0.000 _utils.py:68(replace_symbol_to_no_symbol)
     7299    0.016    0.000    0.031    0.000 abc.py:96(__instancecheck__)
        2    0.000    0.000    0.000    0.000 codecs.py:260(__init__)
        2    0.000    0.000    0.000    0.000 codecs.py:309(__init__)
       12    0.000    0.000    0.000    0.000 codecs.py:319(decode)
       12    0.000    0.000    0.000    0.000 codecs.py:331(getstate)
      7/3    0.031    0.004   39.109   13.036 composer.py:117(compose_mapping_node)
        3    0.000    0.000    0.000    0.000 composer.py:13(__init__)
        3    0.000    0.000   39.109   13.036 composer.py:29(get_single_node)
        3    0.000    0.000   39.109   13.036 composer.py:50(compose_document)
  67380/3    1.344    0.000   39.109   13.036 composer.py:63(compose_node)
    50374    0.375    0.000    1.422    0.000 composer.py:88(compose_scalar_node)
16999/7292    0.578    0.000   31.625    0.004 composer.py:99(compose_sequence_node)
    50374    0.109    0.000    0.203    0.000 constructor.py:117(construct_scalar)
16999/16956    0.078    0.000    1.703    0.000 constructor.py:124(construct_sequence)
16999/16956    0.141    0.000    1.594    0.000 constructor.py:129(<listcomp>)
      7/3    0.062    0.009    0.531    0.177 constructor.py:132(construct_mapping)
    49822    0.312    0.000    0.562    0.000 constructor.py:173(construct_scalar)
        2    0.000    0.000    0.062    0.031 constructor.py:180(flatten_mapping)
        2    0.000    0.000    0.578    0.289 constructor.py:215(construct_mapping)
    12768    0.156    0.000    0.391    0.000 constructor.py:237(construct_yaml_int)
        3    0.000    0.000    0.000    0.000 constructor.py:24(__init__)
    37054    0.078    0.000    0.547    0.000 constructor.py:402(construct_yaml_str)
33760/24096    0.047    0.000    1.750    0.000 constructor.py:405(construct_yaml_seq)
        4    0.000    0.000    0.578    0.145 constructor.py:410(construct_yaml_map)
        3    0.000    0.000   41.453   13.818 constructor.py:47(get_single_data)
        3    0.000    0.000    2.344    0.781 constructor.py:54(construct_document)
67380/66705    0.641    0.000    1.859    0.000 constructor.py:67(construct_object)
   149498    0.219    0.000    0.219    0.000 converter.py:113(post_convert_style)
    34242    0.047    0.000    0.047    0.000 converter.py:133(pre_handle_nopinyin)
    34242    0.359    0.000    0.672    0.000 converter.py:150(handle_nopinyin)
    34242    0.016    0.000    0.016    0.000 converter.py:199(post_handle_nopinyin)
   129083    0.172    0.000    0.172    0.000 converter.py:219(post_pinyin)
   129083    1.500    0.000   19.000    0.000 converter.py:234(_phrase_pinyin)
   108668    1.781    0.000   10.547    0.000 converter.py:278(_single_pinyin)
   489980    0.578    0.000    0.578    0.000 converter.py:29(__init__)
   163325    1.422    0.000   21.594    0.000 converter.py:32(convert)
   149498    0.516    0.000    8.125    0.000 converter.py:323(_convert_style)
    34242    0.156    0.000    0.188    0.000 converter.py:327(_convert_nopinyin_chars)
   122495    1.250    0.000    1.828    0.000 converter.py:360(__init__)
   149498    0.812    0.000    1.031    0.000 converter.py:370(post_convert_style)
   149498    0.234    0.000    0.234    0.000 converter.py:62(pre_convert_style)
   149498    1.641    0.000   11.031    0.000 converter.py:80(convert_style)
102075/20415    1.547    0.000    3.594    0.000 copy.py:128(deepcopy)
    40830    0.078    0.000    0.078    0.000 copy.py:182(_deepcopy_atomic)
61245/20415    0.578    0.000    2.938    0.000 copy.py:200(_deepcopy_list)
    61245    0.234    0.000    0.375    0.000 copy.py:242(_keep_alive)
   122495    0.781    0.000   35.094    0.000 core.py:100(lazy_pinyin)
   122495    0.125    0.000    0.125    0.000 core.py:126(pre_seg)
   122495    1.750    0.000    9.938    0.000 core.py:139(seg)
   122495    0.203    0.000    0.203    0.000 core.py:159(get_seg)
   122495    0.156    0.000    0.156    0.000 core.py:166(post_seg)
   122495    1.125    0.000   38.375    0.000 core.py:313(lazy_pinyin)
   122495    0.328    0.000    0.328    0.000 core.py:58(__init__)
   122495    2.078    0.000   34.312    0.000 core.py:61(pinyin)
        6    0.000    0.000    0.000    0.000 enum.py:278(__call__)
        6    0.000    0.000    0.000    0.000 enum.py:557(__new__)
     1440    0.000    0.000    0.000    0.000 enum.py:659(value)
        3    0.000    0.000    0.000    0.000 enum.py:828(__and__)
   315000    1.078    0.000    1.078    0.000 error.py:6(__init__)
    17006    0.094    0.000    0.094    0.000 events.py:22(__init__)
        3    0.000    0.000    0.000    0.000 events.py:37(__init__)
        3    0.000    0.000    0.000    0.000 events.py:46(__init__)
    17009    0.031    0.000    0.031    0.000 events.py:5(__init__)
        3    0.000    0.000    0.000    0.000 events.py:55(__init__)
    50374    0.125    0.000    0.125    0.000 events.py:65(__init__)
        1    0.000    0.000    0.000    0.000 loader.py:13(__init__)
        2    0.000    0.000    0.016    0.008 loader.py:33(__init__)
        1    0.000    0.000   88.500   88.500 main.py:130(run)
    25056    0.062    0.000    0.062    0.000 main.py:17(<genexpr>)
     2510    0.000    0.000    0.000    0.000 main.py:46(<listcomp>)
     2581    0.000    0.000    0.000    0.000 main.py:49(<listcomp>)
     1532    0.000    0.000    0.000    0.000 main.py:51(<listcomp>)
    33005    0.031    0.000    0.031    0.000 main.py:52(<genexpr>)
        1    0.000    0.000    0.000    0.000 main.py:56(createRegex)
        1    0.156    0.156   49.516   49.516 main.py:8(initChai)
        1    0.531    0.531   38.969   38.969 main.py:92(matchForbidden)
   217336    1.422    0.000    2.250    0.000 mmseg.py:18(cut)
   210743    0.500    0.000    0.500    0.000 mmseg.py:91(__contains__)
    50374    0.094    0.000    0.094    0.000 nodes.py:27(__init__)
    17006    0.016    0.000    0.016    0.000 nodes.py:36(__init__)
       10    0.000    0.000    0.000    0.000 ntpath.py:124(splitdrive)
        3    0.000    0.000    0.000    0.000 ntpath.py:180(split)
        3    0.000    0.000    0.000    0.000 ntpath.py:221(dirname)
        3    0.000    0.000    0.000    0.000 ntpath.py:34(_get_bothseps)
        3    0.000    0.000    0.000    0.000 ntpath.py:77(join)
     3880    0.016    0.000    0.016    0.000 objects.py:13(__init__)
    57012    0.203    0.000    0.266    0.000 objects.py:30(__init__)
32676/6610    0.109    0.000    0.141    0.000 objects.py:46(__init__)
        8    0.000    0.000    0.000    0.000 objects.py:73(flatten)
     6380    0.094    0.000    0.203    0.000 objects.py:88(flatten_with_complex)
   149498    0.562    0.000    6.922    0.000 others.py:15(to_normal)
    67380    0.062    0.000    0.062    0.000 parser.py:107(peek_event)
    84398    0.172    0.000    0.172    0.000 parser.py:114(get_event)
        3    0.000    0.000    0.000    0.000 parser.py:127(parse_stream_start)
        3    0.000    0.000    0.000    0.000 parser.py:139(parse_implicit_document_start)
        3    0.000    0.000    0.000    0.000 parser.py:159(parse_document_start)
        3    0.000    0.000    0.000    0.000 parser.py:190(parse_document_end)
     2954    0.016    0.000    0.297    0.000 parser.py:264(parse_block_node)
    49828    0.297    0.000    6.719    0.000 parser.py:267(parse_flow_node)
    14598    0.062    0.000    2.328    0.000 parser.py:270(parse_block_node_or_indentless_sequence)
    67380    1.438    0.000    8.969    0.000 parser.py:273(parse_node)
      608    0.000    0.000    1.750    0.003 parser.py:376(parse_block_sequence_first_entry)
     3559    0.016    0.000    8.781    0.002 parser.py:381(parse_block_sequence_entry)
        7    0.000    0.000    0.016    0.002 parser.py:422(parse_block_mapping_first_key)
     7306    0.156    0.000    3.922    0.001 parser.py:427(parse_block_mapping_key)
     7299    0.062    0.000    2.531    0.000 parser.py:446(parse_block_mapping_value)
    16391    0.156    0.000    5.297    0.000 parser.py:471(parse_flow_sequence_first_entry)
    66219    0.906    0.000   17.984    0.000 parser.py:476(parse_flow_sequence_entry)
        3    0.000    0.000    0.000    0.000 parser.py:81(__init__)
        3    0.000    0.000    0.000    0.000 parser.py:89(dispose)
   228863    1.078    0.000   35.016    0.000 parser.py:94(check_event)
        3    0.000    0.000    0.000    0.000 pkgutil.py:597(get_data)
     1956    0.016    0.000    0.016    0.000 presets.py:101(<genexpr>)
    54140    0.047    0.000    0.047    0.000 presets.py:15(<listcomp>)
    54140    0.531    0.000    3.500    0.000 presets.py:29(getTopoList)
    53944    0.531    0.000    1.188    0.000 presets.py:38(<listcomp>)
   243629    0.656    0.000    0.656    0.000 presets.py:39(<listcomp>)
   298481    0.734    0.000    1.266    0.000 presets.py:48(<genexpr>)
     9481    0.047    0.000    0.062    0.000 presets.py:52(schemeLen)
      428    0.016    0.000    0.031    0.000 presets.py:60(schemeTopo)
     3902    0.016    0.000    0.016    0.000 presets.py:69(<genexpr>)
      428    0.000    0.000    0.016    0.000 presets.py:69(<listcomp>)
     5119    0.000    0.000    0.000    0.000 presets.py:79(<listcomp>)
     1035    0.000    0.000    0.094    0.000 presets.py:84(schemeOrder)
    54140    0.156    0.000    0.297    0.000 presets.py:9(getStrokeList)
17687/5557    0.078    0.000    0.078    0.000 presets.py:92(<genexpr>)
      425    0.000    0.000    0.016    0.000 presets.py:95(schemeBias)
        0    0.000             0.000          profile:0(profiler)
        1    0.000    0.000   88.500   88.500 profile:0(run())
      406    0.922    0.002    5.781    0.014 pychai.py:116(genPowerDict)
      406    0.000    0.000    0.000    0.000 pychai.py:127(<listcomp>)
      406    0.391    0.001    1.062    0.003 pychai.py:144(genSchemeList)
   166546    0.266    0.000    0.266    0.000 pychai.py:159(<lambda>)
        1    0.062    0.062   41.766   41.766 pychai.py:16(__init__)
      406    0.000    0.000    0.312    0.001 pychai.py:171(genBestScheme)
    56368    0.406    0.000    4.203    0.000 pychai.py:174(degenerator)
      406    0.031    0.000    0.312    0.001 pychai.py:184(selector)
     1624    0.047    0.000    0.250    0.000 pychai.py:190(<listcomp>)
     1624    0.000    0.000    0.000    0.000 pychai.py:192(<listcomp>)
     1858    0.016    0.000    0.016    0.000 pychai.py:202(<genexpr>)
        1    0.031    0.031    7.219    7.219 pychai.py:206(run)
     24/8    0.000    0.000    0.000    0.000 pychai.py:228(<listcomp>)
      605    0.000    0.000    0.016    0.000 pychai.py:232(<listcomp>)
     7215    0.047    0.000    0.047    0.000 pychai.py:42(<lambda>)
        1    0.000    0.000    0.031    0.031 pychai.py:54(parseSchema)
        1    0.000    0.000    0.000    0.000 pychai.py:69(<listcomp>)
      196    0.000    0.000    0.000    0.000 pychai.py:80(<listcomp>)
      193    0.000    0.000    0.000    0.000 pychai.py:96(<genexpr>)
       42    0.000    0.000    0.000    0.000 pychai.py:97(<listcomp>)
        3    0.000    0.000    0.000    0.000 pydev_import_hook.py:16(do_import)
     1440    0.016    0.000    0.062    0.000 re.py:243(finditer)
     1440    0.000    0.000    0.031    0.000 re.py:289(_compile)
   315000    1.266    0.000    2.344    0.000 reader.py:114(get_mark)
        3    0.000    0.000    0.016    0.005 reader.py:138(check_printable)
        5    0.000    0.000    0.000    0.000 reader.py:146(update)
        3    0.000    0.000    0.016    0.005 reader.py:59(__init__)
   937141    1.656    0.000    1.656    0.000 reader.py:87(peek)
   111026    0.406    0.000    0.562    0.000 reader.py:94(prefix)
   236660    1.328    0.000    1.703    0.000 reader.py:99(forward)
    67380    0.141    0.000    0.141    0.000 resolver.py:114(ascend_resolver)
    67380    0.516    0.000    0.875    0.000 resolver.py:143(resolve)
        3    0.000    0.000    0.000    0.000 resolver.py:21(__init__)
    67380    0.219    0.000    0.219    0.000 resolver.py:91(descend_resolver)
        1    0.000    0.000    0.000    0.000 scanner.py:1052(scan_block_scalar_indicators)
        1    0.000    0.000    0.000    0.000 scanner.py:1092(scan_block_scalar_ignored_line)
        1    0.000    0.000    0.000    0.000 scanner.py:1106(scan_block_scalar_indentation)
        1    0.000    0.000    0.000    0.000 scanner.py:1121(scan_block_scalar_breaks)
   538013    3.406    0.000   26.641    0.000 scanner.py:113(check_token)
        1    0.000    0.000    0.000    0.000 scanner.py:1134(scan_flow_scalar)
        1    0.000    0.000    0.000    0.000 scanner.py:1185(scan_flow_scalar_non_spaces)
    84392    0.266    0.000    1.188    0.000 scanner.py:125(peek_token)
    50372    1.547    0.000    5.172    0.000 scanner.py:1270(scan_plain)
    50377    0.562    0.000    1.359    0.000 scanner.py:1311(scan_plain_spaces)
   135378    0.719    0.000    2.156    0.000 scanner.py:135(get_token)
   137105    0.531    0.000    0.797    0.000 scanner.py:1416(scan_line_break)
   884629    4.719    0.000    8.391    0.000 scanner.py:145(need_more_tokens)
   126846    1.547    0.000   15.984    0.000 scanner.py:156(fetch_more_tokens)
   847198    1.531    0.000    1.531    0.000 scanner.py:264(next_possible_simple_key)
   974044    2.344    0.000    2.344    0.000 scanner.py:279(stale_possible_simple_keys)
    66764    0.625    0.000    1.547    0.000 scanner.py:295(save_possible_simple_key)
   112861    0.266    0.000    0.266    0.000 scanner.py:312(remove_possible_simple_key)
   126849    0.125    0.000    0.141    0.000 scanner.py:325(unwind_indent)
    10250    0.016    0.000    0.016    0.000 scanner.py:349(add_indent)
        3    0.000    0.000    0.000    0.000 scanner.py:359(fetch_stream_start)
        3    0.000    0.000    0.000    0.000 scanner.py:371(fetch_stream_end)
    60078    0.172    0.000    0.172    0.000 scanner.py:38(__init__)
    16391    0.047    0.000    0.844    0.000 scanner.py:424(fetch_flow_sequence_start)
    16391    0.266    0.000    0.797    0.000 scanner.py:430(fetch_flow_collection_start)
    16391    0.062    0.000    0.734    0.000 scanner.py:447(fetch_flow_sequence_end)
    16391    0.156    0.000    0.672    0.000 scanner.py:453(fetch_flow_collection_end)
    33437    0.469    0.000    1.172    0.000 scanner.py:470(fetch_flow_entry)
        3    0.000    0.000    0.000    0.000 scanner.py:48(__init__)
     2951    0.016    0.000    0.094    0.000 scanner.py:484(fetch_block_entry)
     7299    0.188    0.000    0.438    0.000 scanner.py:545(fetch_value)
        1    0.000    0.000    0.000    0.000 scanner.py:634(fetch_literal)
        1    0.000    0.000    0.000    0.000 scanner.py:640(fetch_block_scalar)
        1    0.000    0.000    0.000    0.000 scanner.py:654(fetch_double)
        1    0.000    0.000    0.000    0.000 scanner.py:657(fetch_flow_scalar)
    50372    0.359    0.000    6.984    0.000 scanner.py:668(fetch_plain)
     4178    0.016    0.000    0.016    0.000 scanner.py:690(check_document_start)
       18    0.000    0.000    0.000    0.000 scanner.py:698(check_document_end)
     4178    0.031    0.000    0.031    0.000 scanner.py:706(check_block_entry)
     7299    0.031    0.000    0.062    0.000 scanner.py:721(check_value)
    50372    0.219    0.000    0.375    0.000 scanner.py:731(check_plain)
   126846    1.297    0.000    3.000    0.000 scanner.py:752(scan_to_next_token)
        1    0.000    0.000    0.000    0.000 scanner.py:976(scan_block_scalar)
   122495    1.688    0.000    7.281    0.000 simpleseg.py:11(seg)
   122495    0.719    0.000    2.859    0.000 simpleseg.py:24(simple_seg)
   122495    1.094    0.000    1.938    0.000 simpleseg.py:38(_seg)
        6    0.000    0.000    0.000    0.000 sre_compile.py:249(_compile_charset)
        6    0.031    0.005    0.031    0.005 sre_compile.py:276(_optimize_charset)
        3    0.000    0.000    0.000    0.000 sre_compile.py:411(_mk_bitmap)
        3    0.000    0.000    0.000    0.000 sre_compile.py:413(<listcomp>)
        3    0.000    0.000    0.000    0.000 sre_compile.py:416(_bytes_to_codes)
        6    0.000    0.000    0.000    0.000 sre_compile.py:423(_simple)
        6    0.000    0.000    0.000    0.000 sre_compile.py:453(_get_iscased)
        3    0.000    0.000    0.000    0.000 sre_compile.py:461(_get_literal_prefix)
        3    0.000    0.000    0.000    0.000 sre_compile.py:492(_get_charset_prefix)
        3    0.000    0.000    0.000    0.000 sre_compile.py:536(_compile_info)
        6    0.000    0.000    0.000    0.000 sre_compile.py:595(isstring)
        3    0.000    0.000    0.031    0.010 sre_compile.py:598(_code)
     29/3    0.000    0.000    0.031    0.010 sre_compile.py:71(_compile)
        3    0.000    0.000    0.031    0.010 sre_compile.py:759(compile)
       38    0.000    0.000    0.000    0.000 sre_parse.py:111(__init__)
       73    0.000    0.000    0.000    0.000 sre_parse.py:160(__len__)
      185    0.000    0.000    0.000    0.000 sre_parse.py:164(__getitem__)
       15    0.000    0.000    0.000    0.000 sre_parse.py:168(__setitem__)
       60    0.000    0.000    0.000    0.000 sre_parse.py:172(append)
     29/3    0.000    0.000    0.000    0.000 sre_parse.py:174(getwidth)
        3    0.000    0.000    0.000    0.000 sre_parse.py:224(__init__)
      169    0.000    0.000    0.000    0.000 sre_parse.py:233(__next)
       66    0.000    0.000    0.000    0.000 sre_parse.py:249(match)
       94    0.000    0.000    0.000    0.000 sre_parse.py:254(get)
        6    0.000    0.000    0.000    0.000 sre_parse.py:258(getwhile)
       33    0.000    0.000    0.000    0.000 sre_parse.py:286(tell)
        6    0.000    0.000    0.000    0.000 sre_parse.py:295(_class_escape)
        6    0.000    0.000    0.000    0.000 sre_parse.py:432(_uniq)
     12/3    0.000    0.000    0.000    0.000 sre_parse.py:435(_parse_sub)
     27/3    0.000    0.000    0.000    0.000 sre_parse.py:493(_parse)
        3    0.000    0.000    0.000    0.000 sre_parse.py:76(__init__)
        6    0.000    0.000    0.000    0.000 sre_parse.py:81(groups)
        3    0.000    0.000    0.000    0.000 sre_parse.py:921(fix_flags)
        3    0.000    0.000    0.000    0.000 sre_parse.py:937(parse)
    85001    0.125    0.000    0.125    0.000 tokens.py:3(__init__)
        3    0.000    0.000    0.000    0.000 tokens.py:33(__init__)
    50374    0.109    0.000    0.109    0.000 tokens.py:98(__init__)
        3    0.000    0.000   41.469   13.823 tools.py:12(loadFromPackage)
        1    0.000    0.000    0.000    0.000 tools.py:20(checkCompleteness)
        1    0.000    0.000    0.000    0.000 tools.py:39(<listcomp>)
        1    0.000    0.000    0.000    0.000 tools.py:4(load)
       43    0.000    0.000    0.000    0.000 tools.py:42(expand)
       18    0.000    0.000    0.000    0.000 tools.py:49(<listcomp>)
    22497    0.250    0.000    0.375    0.000 tools.py:61(nextRoot)
    55884    0.094    0.000    0.094    0.000 tools.py:81(<listcomp>)
     1440    0.000    0.000    0.000    0.000 types.py:171(__get__)
        3    0.000    0.000    0.000    0.000 util.py:73(find_spec)

計算模塊部分單元測試展示

部分輸出示例


測試地址

Tests passed: 10 of 10tests - 54 s 77 ms

計算模塊部分異常處理說明

同音字是中間遇到的最大的問題

通過對應第三方庫以及相應的算法進行了解決

三、心得

Github的使用越發嫻熟
第三方庫的使用也更加得心應手


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM