前言

最近在实习,任务并不是很重,就利用闲暇时间使用Python3在PAT网站上刷题,并致力于使用Python3的特性和函数式编程的理念,其中大部分题目都有着类似的输入输出格式,例如一行读入若干个数字,字符串,每行输出多少个字符串等等,所以产生了很多重复的代码。

Python代码

于是我就利用VS Code的代码片段功能编写了一个用于处理这些输入输出的代码框架,并加入了测试功能(写函数前先写测试时正确的事情)。代码如下

"""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\n")

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\n")

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\n")

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 '\n' + \

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"文件如以下内容

{

/*

// 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.\"\"\"\nimport sys\n\ndef read_int():\n \"\"\"Read a seris of numbers.\"\"\"\n return list(map(int, sys.stdin.readline().split()))\n\n\ndef read_float():\n \"\"\"Read a seris of float numbers.\"\"\"\n return list(map(float, sys.stdin.readline().split()))\n\n\ndef read_word():\n \"\"\"Read a seris of string.\"\"\"\n return list(map(str, sys.stdin.readline().split()))\n\n\ndef combine_with(seq, sep=' ', num=None):\n \"\"\"Combine list enum with a character and return the string object\"\"\"\n res = sep.join(list(map(str, seq)))\n if num is not None:\n res = str(seq[0])\n for element in range(1, len(seq)):\n res += sep + str(seq[element]) if element % num != 0 else '\\n' + str(seq[element])\n return res\n\n\ndef main():\n \"\"\"The main function.\"\"\"\n pass\n\n\nif __name__ == '__main__':\n sys.exit(int(main() or 0))\n"

],

"description": "Simple Console Program With Data Input And Output"

}

}

然后再编写Python代码的时候,键入"simple"就可以自动输入以上模板。

总结

虽然Python不是特别适合解答算法题目这种性能要求很高的场景,但是在一些模拟题目如各种排队型和字符串处理的条件下,使用Python可以极大地提高解体效率,另外还可以使用cimport使用C语言的数据结构和Python的语法特性,效率不弱于原生C代码。

python3.4勾股定理代码_用于解答算法题目的Python3代码框架相关推荐

  1. 约瑟夫环 java代码_约瑟夫环算法的Java实现代码

    相信大家都知道这是一个的算法问题,约瑟夫环的c语言实现是利用了指针链表的形式,java实现呢,我的这个是用了内部类. 算法描述:n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针 ...

  2. a*算法matlab代码_蚁群算法(含MATLAB代码)

    CSDN-专业IT技术社区-登录​blog.csdn.net

  3. 中文分词算法python代码_中文分词算法之最大正向匹配算法(Python版)

    最大匹配算法是自然语言处理中的中文匹配算法中最基础的算法,分为正向和逆向,原理都是一样的. 正向最大匹配算法,故名思意,从左向右扫描寻找词的最大匹配. 首先我们可以规定一个词的最大长度,每次扫描的时候 ...

  4. 人工鱼群算法python代码_人工鱼群算法python_鱼群算法 - Brillou的个人空间 - OSCHINA - 中文开源技术交流社区......

    本算法是参照李晓磊博士的论文实现的,详细的算法原理可阅读<一种新型的智能优化方法_人工鱼群算法_李晓磊> 算法基于鱼群的生存行为:在一片水域中,鱼存在的数目最多的地方就是本水域中富含营养物 ...

  5. a*算法的时间复杂度_从经典算法题看时间复杂度

    本文首发公众号:架构精进​,排版比较清晰. 经常有同学在 LeetCode 的题解中问解法的复杂度是多少.作为一个懒人,我一直在「逃避」这个问题,毕竟这东西听起来就这么「复杂」. 但本着对题解认真负责 ...

  6. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码

    粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...

  7. 微信推文图片间距有缝的代码_使用记录接缝进行旧代码单元测试

    微信推文图片间距有缝的代码 在大多数情况下,使用遗留代码可能很困难. 但是,当涉及到添加新功能,重构或维护您不熟悉的代码时,它可能会变得势不可挡. 如果您已经使用敏捷技术几年了,并且突然间您面对大量的 ...

  8. 浪漫的python代码_七夕,最浪漫的Python代码送给陷入爱河的Python男同胞

    七夕,最浪漫的Python代码送给陷入爱河的Python男同胞 image.gif ​ 三句话情书,我们听过.如何用python写一段浪漫的代码?可以是简短有韵味的情书式, 也欢迎冗长而效果拔群的万行 ...

  9. html中看到php代码_如何在HTML中嵌入PHP代码

    如何在HTML中嵌入PHP代码 对于一个有经验的 PHP Web 开发者,在HTML中嵌入PHP代码是一件非常容易的事情.但是对于刚开始接触 PHP 编程语言的新手这就是一个问题.下面是小编为大家带来 ...

最新文章

  1. loadrunner 调用java_LoadRunner调用Java程序—性能测试
  2. docker lamp php7,如何用docker安装lamp
  3. JVM史上最最最完整深入解析,不看后悔一百次!
  4. WordPress个性页面制作教程
  5. source 导入大批量sql文件的方法
  6. 选中内容_Excel – 选中的单元格自动显示在A1,报表演示数据再多也能看清
  7. php mysql 非空_PHP-为什么mysql接受非空字段为null
  8. java socket 缓冲_关于socket的发送缓冲区网上有诸多的讨论,这里个人小结一下,希望对以后有些帮助。首先,看下面一段代码,...
  9. 解决Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory
  10. 项目方说性能达到百万TPS,如何测试它的可信度?
  11. PHP 字符串匹配算法 Sunday算法
  12. 将软件添加到右键菜单 最简单的方法
  13. STM8S003F3 使用ADC:固件库版本与寄存器版本
  14. TPLink路由器登陆密码怎么破解
  15. 微软内置真正linux_如何使用Microsoft Word的内置屏幕截图工具
  16. matlab 平滑曲线连接_【小微技能】:数学建模比赛中MATLAB的实用技巧
  17. 51单片机-DS1302时钟芯片(自己理解的
  18. 【题解】【中国大学MOOC】(北京大学)人工智能与信息社会测验——1新闻热点与身边的人工智能
  19. 本经阴符七术--鬼谷子
  20. TypeError: an integer is required (got type bytes)

热门文章

  1. android访问服务器文件,访问服务器(加载图片)
  2. 《破窑赋》 《命运赋》 《时运赋》
  3. 一文能读懂车载与Android的关系
  4. 使用malloc函数分配空间
  5. td可编辑(html标签可编辑)
  6. python数据可视化案例2017年6省gdp_吴裕雄 数据挖掘与分析案例实战(5)——python数据可视化...
  7. 【Vue 问题】文件流导出为excel无法打开
  8. 超简单使用华为云托管服务
  9. 格雷码在异步FIFO中的应用
  10. 仿微信表情输入键盘(支持 Gif 表情图文混排 )