PythonThinking_‘编程习惯养成与思维'
T5总结:
本文主要介绍‘编程习惯养成与思维’,偏说理而非实战。因为缺乏相关代码与举例,所以在理解上很困难。
所以本文进行查阅相关资料,进行理解和总结。
目录:
1.防御性编程与备注
2.科学分析思维
迭代问题逻辑
代码效率
3.图灵完备语言
4.Debugger
5.抽象化、模块化、封装代码
6.如何知道运行代码的时间
7.如何修复他人的代码
1.防御性编程与备注
以下参考资料很专业,但较难理解,日后再回顾。
Python中的防御性编程 (上)
来自 https://python.freelycode.com/contribution/detail/112
Python中的防御性编程 (下)
来自 https://python.freelycode.com/contribution/detail/113
2.科学分析思维
a.迭代问题逻辑
1、选择一个可以计数的变量(Choose variable that “count”)
2、在外部需要初始化它(Initiative outside the loop)
3、需要设置正确的最终测试(Setup and test)
4、构建代码块(Conctract block)
5、当结束后,你知道,当我完成后,我该怎么做(What to do when done)
b.代码效率
在时间、空间恒定的情况下,需要考虑的是
1、计算需要多少内存
2、输入大小的函数所需的基本步骤数量是多少
表现 | 所需步骤与内存 |
---|---|
Best | min |
Worst | max |
Expected | avg |
3.图灵完备语言
图灵完备语言包含三部分
1、数据:数组,字符串,布尔
2、操作:数字运算,如+,-,and/or等
3、命令:赋值、输入/输出、条件/分支、循环机制
有了这三部分,我们就可以做任何事情,在基础部分,我们都有接触过。能做什么事情呢?包括自然语言学习,图像识别,语音识别等
4.Debugger
首先要发现产生问题的最小输入,然后进行打印测试,采用二分法进行测试,每次是在代码中进行打印,每次测试可以排除一半的代码块,并自己先预测一下结果会是什么,耐心冷静的减小搜索出现问题的地方
PYHDW调试建议
- 不要使用调试器(“debugger”)。调试器所做的相当于对病人的全身扫描。你并不
会得到某方面的有用信息,而且你会发现它输出的信息太多,而且大部分没有用,
或者只会让你更加困惑。 - 最好的调试程序的方法是用 print 在每个你想要检查的关键环节将关键变量打印出
来,从而检查那里是否有错。 - 让程序一部分一部分地运行起来。不要等一个很长的脚本写完后才去运行它。写一
点,运行一点,再修改一点。
5.抽象化、模块化、封装代码
这部分是为了解决阅读代码的问题,事实上几十万行的代码看的时候很难去理解,会把代码进行分成几个模块,一个模块负责对应相关的操作,也方便后续的debugger,和阅读
eg:机器学习中会分为数据清洗、训练、测试,三个大模块
6.如何知道运行代码的时间
核心思想:影响代码运行时间会受到,1、机器性能。2、使用的语言。3、数据量。等
其实这些并不能为我们预估出运行代码的时间,因为这些都有很多变量,其实唯一不变的是运行这个程序需要多少步,
eg:时间复杂度、空间复杂度
python 的标准库手册推荐使用方法time.perf_counter()返回以秒为单位的时间浮点值。
//python3.8之后的版本不再支持time.clock(),得用time.per_counter()
#导入时间模块
import time
#求素数的程序
def is_prime(number):for i in range(2, number):if number % i == 0:return Falsereturn True
if __name__ == '__main__':number = 17377start_time = time.perf_counter()is_prime(number)end_time = time.perf_counter()
#按差异打印执行时间
print(end_time - start_time)
0.004068800000027295
7.如何修复他人的代码
在编程的时候,我们常常会借鉴别人的代码,但会碰到一个问题,并不是每一份代码都可以完整复现,会受到版本、运行环境等的影响,
所以要修复他人的代码,提供一个思路是要有一个系统性的思考
PythonThinking_‘编程习惯养成与思维'相关推荐
- 敲代码括号技巧_理解代码块概念,养成良好编程习惯 | 亲子课堂 第 3 课
亲子课堂 关卡解析 / 英语教学 / 编程讲解 做亲子编程教育的好帮手! 每周二.四定期更新 地牢 面向真正0编程基础的孩子们,关卡被设计成迷宫的形式,引导孩子们使用编程思维解决问题. 以循序渐进的方 ...
- 一个教训:养成良好的编程习惯的重要性
1.良好的编程习惯非常重要,可以帮我们避免很多潜在错误,今天程序有个bug死活都调不通,请项目组里的大牛帮忙看了一下,忙活了半天定位了原因:有个函数的入参在传入函数前没有初始化,导致程序bug,这种错 ...
- 学习感悟-如何养成良好的编程习惯
如何养成良好的编程习惯 1.增强代码的可读性 一个优秀程序员编写的代码不仅体现在代码的质量上,而且体现在代码的可读性上.由于我们编写的代码是给计算机运行和供别人阅读的,所以在编写代码时要兼顾这两方面. ...
- 养成良好的编程习惯很重要(C++)
在学习资料满天飞的大环境下,知识变得非常零散,体系化的知识并不多,这就导致很多人每天都努力学习到感动自己,最终却收效甚微,甚至放弃学习.我的使命就是过滤掉大量的无效信息,将知识体系化,以短平快的方式直 ...
- 如何在编程时养成良好的习惯
如何在写代码时养成良好的习惯 一个人有没有良好的修养,就从他的为人处世以及行为习惯中看出来.作为软件开发人员,也应该养成良好的职业素养和编程习惯,这样才能在人生道路上进一步向上攀爬. 命名 养成良好的 ...
- 用python做dnf脚本好还是c语言好,养成这8个编程习惯,你的Python性能将蹭蹭蹭地往上涨...
Python不以性能见长,但掌握一些技巧,也可尽量提高程序性能,避免不必要的资源浪费. 1. 使用局部变量 尽量使用局部变量代替全局变量:便于维护,提高性能并节省内存. 使用局部变量替换模块名字空间中 ...
- 有哪些好的编程习惯从一开始就值得坚持?
编程中,有哪些好的习惯从一开始就值得坚持? 电影<喜剧之王>里,周星驰饰演的尹天仇,是一个渴望成为真正的演员,却不断沦为落魄跑龙套的小人物. 即便如此,他对演戏的态度始终认真而可敬.他每天 ...
- 少儿编程教育好不好---《浅谈青少儿编程教育与计算思维》
前言 最近国家政策导向,导致很多少儿教育行业迎来了寒冬,使得不少企业都快支撑不下去了,这也是国家对于校外少儿教育行业的规范化必经之路.我们今天不讲政策和形势,谈谈我对于少儿编程教育的一些认识.毕竟也在 ...
- 少儿编程学的是思维还是程序?
少儿编程学的是思维还是程序? 未来世界的人将会分成两种人:一种是会编程的人,另一种是不会编程的人. 会编程的人可以创造.可以写出改变人类社会的软件:不会编程的人,如果学会使用别人写的软件,则可以充当辅 ...
最新文章
- Linux13-bash脚本编程基础及配置文件
- The King of Excel Geek 0.1版本
- mysql中select语句子句,了解mysql中select语句操作实例
- vb.net 判断是否为ip 正则_什么是个人IP科学定位?标准答案来了|ip|直播|科学|ip魔方...
- 本週主題 -- Jakarta Commons Lang
- java自动封箱_java自动封箱是什么意思
- 这月到手的工资多了没?
- (第五周)结对项目——黄金点游戏
- 常用的monkey命令
- 影响中国互联网的100人
- 每日一句---- Day8
- DRM in Android详解
- 某宝付费买的价值上万的60G的Python学习资源,0基础轻松赚钱到手软,请低调使用,禁止外传~...
- 电商网站商品详情架构
- 关于烛光斧影——赵光义是否谋杀赵匡胤,是否合法继位
- 教你如何打开Centos7的可视化-磁盘使用情况分析-界面
- 关于异步的几点思考......
- HDU 2188-悼念512汶川大地震遇难同胞——选拔志愿者
- java swing的弹窗_java Swing实现弹窗效果
- 搬迁学习笔记2——The specified child already has a parent的解决方法
热门文章
- Pd1 药物研发进展|销售数据|市场规模|竞争格局|前景分析
- 【HCIE-RS 天梯路】IPv6基础
- excel超链接应用:快速生成目录的几个方法-上
- 知识图谱-KGE-模型:概述【翻译模型:Trans系列】【双线性模型:DisMult、ComplEx】【神经网络模型:ConvE、CapsE】【双曲几何模型:MuRP】【旋转模型:RotatE】
- 协方差局长你_协方差怎么算
- 2006年在职攻读硕士学位全国联考参考答案
- 数组:左右两边数组的和相等
- 安科瑞AWT100无线通信终端,体积小巧,采用标准的DIN35mm导轨式安装
- AI行业精选日报_人工智能(12·23)
- 程序员羊皮卷(张大志)pdf