这次算正式上手看看python?以前有一些略糙的语言(c/java/js)基础,然后也是正式用markdown来书写笔记,所以还是比较有纪念意义的一天吧.
Update: 重构, 重新带着 [SICP](https://en.wikipedia.org/wiki/Structure_and_Interpre tation_of_Computer_Programs) /Berkeley CS61A为主线接触一下
0x00. 前言
开发环境怎么顺手怎么来, 如果你用之前用 InteliJ 家族的软件开发 Go/C/Rust 等, 那你可以直接安装一个 python 插件即可获得类似的开发效果, 无需单独折腾环境, 如果你习惯vscode那就直接按它推荐的 py 全家桶即可. 这里用的是 python3.9 (过高可能有稍微兼容问题, 没必要)
然后这里不会从0基础开始说重复的编程, 基于已经熟练掌握一门编译类语言 + 简单的脚本类语言(js/shell)的基础记录笔记, 下面是一些提纲:
- 文档参考 Composing Programs, SICP 的 py 版
- py 在线可视化执行 - pythontutor.com
- 一些 Labs/Homework + 四个核心 Projects
- 掷骰子游戏
- 打字测速并查/纠错
- 蚂蚁大战蜜蜂 (Game)
- Scheme(子集)的解释器
1. 解释形语言
py 被认为是一种多范式 (paradigm) 语言, 这里什么叫多范式呢? 简单理解就是它允许多种不同思想主导的编程风格 (过程/OOP/函数式..)
None 是 py 中代表空的关键字, 首字母必须大写 (同 True/False), 类似 null, 然后很常见的判空操作, 在 py 中需要使用 is / is not 语法, 而不是 == / != , 前者在 py 中是对地址进行比较, 而后者是值的比较(默认会调用_eq_() 方法), 这点和其他语言有些区别, 注意别搞混了 (开启语言 lint 很必要)
py 中的函数声明不需要指定类型, 是否返回值由内部函数体决定, 没有 return 就是不返回(None),
0x0x. 基本类型
数字类型
- 整数
- 长整数
- 浮点 (e.g 52.3E4 这里E代表10的–>也就是$52.3*10^4$)
- 复数 (e.g : -5+4j)
字符串
单双引号貌似是一样的效果,特别有一个三引号,可以多行输入,e.g
1 | #demo2 |
a.单双引号互用有个显而易见的好处就是可以减少转义’/“的使用,如demo1中输出’或者”就可以使用对方.
b.值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继
续,而不是开始一个新的行.–>如 e.g
1 | print 'first line \ |
说到输出就顺便说下输入,input()可以直接接受输入.
1 | print "Who do u think I am?" |
这里不同的是,如果输入的是字符串,也需要’或”括起来. 这就可以推断如果直接打印数字,可能不用引号
参考资料: