成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

用于解答算法題目的Python3代碼框架

Dr_Noooo / 2865人閱讀

摘要:代碼于是我就利用的代碼片段功能編寫了一個用于處理這些輸入輸出的代碼框架,并加入了測試功能寫函數(shù)前先寫測試時正確的事情。

前言

最近在實習,任務并不是很重,就利用閑暇時間使用Python3在PAT網(wǎng)站上刷題,并致力于使用Python3的特性和函數(shù)式編程的理念,其中大部分題目都有著類似的輸入輸出格式,例如一行讀入若干個數(shù)字,字符串,每行輸出多少個字符串等等,所以產(chǎn)生了很多重復的代碼。

Python代碼

于是我就利用VS Code的代碼片段功能編寫了一個用于處理這些輸入輸出的代碼框架,并加入了測試功能(寫函數(shù)前先寫測試時正確的事情)。代碼如下

"""Simple Console Program With Data Input And Output."""
import sys
import io


def read_int():
    """Read a seris of numbers."""
    return list(map(int, sys.stdin.readline().split()))


def test_read_int():
    """Test the read_int function"""
    test_file = io.StringIO("1 2 3
")
    sys.stdin = test_file
    assert read_int() == [1, 2, 3], "read_int error"


def read_float():
    """Read a seris of float numbers."""
    return list(map(float, sys.stdin.readline().split()))


def test_read_float():
    """Test the read_float function"""
    test_file = io.StringIO("1 2 3
")
    sys.stdin = test_file
    assert read_float() == [1.0, 2.0, 3.0], "read_float error"


def read_word():
    """Read a seris of string."""
    return list(map(str, sys.stdin.readline().split()))


def test_read_word():
    """Test the read_word function"""
    test_file = io.StringIO("1 2 3
")
    sys.stdin = test_file
    assert read_word() == ["1", "2", "3"], "read_word error"


def combine_with(seq, sep=" ", num=None):
    """Combine list enum with a character and return the string object"""
    res = sep.join(list(map(str, seq)))
    if num is not None:
        res = str(seq[0])
        for element in range(1, len(seq)):
            res += sep + 
                str(seq[element]) if element % num != 0 else "
" + 
                str(seq[element])
    return res


def test_combile_with():
    """Test the combile_with function."""
    assert combine_with([1, 2, 3, 4, 5], "*", 2) == """1*2
3*4
5""", "combine_with error."


def main():
    """The main function."""
    pass


if __name__ == "__main__":
    sys.exit(int(main() or 0))
VS Code代碼片段

添加到VS Code的默認代碼片段的操作大致如下:

文件->首選項->用戶代碼片段,選擇Python

編輯"python.json"文件如以下內(nèi)容

{
/*
     // Place your snippets for Python here. Each snippet is defined under a snippet name and has a prefix, body and 
     // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
     // $1, $2 for tab stops, ${id} and ${id:label} and ${1:label} for variables. Variables with the same id are connected.
     // Example:
     "Print to console": {
        "prefix": "log",
        "body": [
            "console.log("$1");",
            "$2"
        ],
        "description": "Log output to console"
    }
*/
 "Simple Console Program With Data Input And Output": {
        "prefix": "simple",
        "body": [""""Simple Console Program With Data Input And Output."""
import sys

def read_int():
    """Read a seris of numbers."""
    return list(map(int, sys.stdin.readline().split()))


def read_float():
    """Read a seris of float numbers."""
    return list(map(float, sys.stdin.readline().split()))


def read_word():
    """Read a seris of string."""
    return list(map(str, sys.stdin.readline().split()))


def combine_with(seq, sep=" ", num=None):
    """Combine list enum with a character and return the string object"""
    res = sep.join(list(map(str, seq)))
    if num is not None:
        res = str(seq[0])
        for element in range(1, len(seq)):
            res += sep + str(seq[element]) if element % num != 0 else "
" + str(seq[element])
    return res


def main():
    """The main function."""
    pass


if __name__ == "__main__":
    sys.exit(int(main() or 0))
"
        ],
        "description": "Simple Console Program With Data Input And Output"
    }
}```
 然后再編寫Python代碼的時候,鍵入"simple"就可以自動輸入以上模板。

![](https://static.oschina.net/uploads/img/201608/04182804_9GZn.png "在這里輸入圖片標題")
# 總結

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/45510.html

相關文章

  • 【數(shù)據(jù)結構_浙江大學MOOC】第二講 線性結構

    摘要:應直接使用原序列中的結點,返回歸并后的帶頭結點的鏈表頭指針。要求分別計算兩個多項式的乘積與和,輸出第一項為乘積的系數(shù)和指數(shù),第二行為和的系數(shù)和指數(shù)。選定了表示方法后,考慮數(shù)據(jù)結構設計。選擇鏈表在設計數(shù)據(jù)結構的時候有系數(shù)指數(shù)和指針結構指針。 函數(shù)題給出編譯器為 C(gcc) 的解答,編程題給出編譯器 C++(g++) 或 Python(python3) 的解答。 函數(shù)題 兩個有序鏈表序...

    luxixing 評論0 收藏0
  • JS算法題之leetcode(1~10)

    摘要:先去空白,去掉空白之后取第一個字符,判斷正負符號,若是英文直接返回,若數(shù)字則不取?;匚臄?shù)題目描述判斷一個整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序從左向右和倒序從右向左讀都是一樣的整數(shù)。 JS算法題之leetcode(1~10) 前言 一直以來,前端開發(fā)的知識儲備在數(shù)據(jù)結構以及算法層面是有所暫缺的,可能歸根于我們的前端開發(fā)的業(yè)務性質(zhì),但是我認為任何的編程崗位都離不開數(shù)據(jù)結構以及算法。因此,我作為...

    SoapEye 評論0 收藏0
  • 從簡歷被拒到收割今日頭條 offer,我用一年時間破繭成蝶!

    摘要:正如我標題所說,簡歷被拒??戳宋液啔v之后說頭條競爭激烈,我背景不夠,點到為止。。三準備面試其實從三月份投遞簡歷開始準備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學投稿的面試經(jīng)歷 關注微信公眾號:進擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學的分享 目錄: 印象中的頭條 面試背景 準備面試 ...

    tracymac7 評論0 收藏0
  • 從簡歷被拒到收割今日頭條 offer,我用一年時間破繭成蝶!

    摘要:正如我標題所說,簡歷被拒??戳宋液啔v之后說頭條競爭激烈,我背景不夠,點到為止。。三準備面試其實從三月份投遞簡歷開始準備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學投稿的面試經(jīng)歷 關注微信公眾號:進擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學的分享目錄:印象中的頭條面試背景準備面試頭條一面(Java+項目)頭條...

    wdzgege 評論0 收藏0

發(fā)表評論

0條評論

Dr_Noooo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<