Chapter0 计算机科学
计算级科学?
任何领域,凡是在气名称中含有“科学”字眼的,保证不是一门科学。
--Frank Harary
1.提出问题,但无法解决,在计算机能解决的问题的范畴中
e.g.Halting Problem
2.计算效率--时间是一项重要指标
3.算法和数据结构--计算机科学家认为最有价值的部分
算法:解决问题的方法
数据结构:算法中的所用的数据的组织结构
4.并行处理--往往被视作高级主题
5.软件工程--编写程序的过程,包括算法设计到支撑测试,再到程序完成后的维护工作
6.其他--
编程的困难
0.通过编程来学习计算机科学,探索计算机科学的本质
1.同时做两件事--1.1对要使用的程序设计语言的语法、语义不熟悉
1.2不知如何使用计算机来解决问题
2.好程序的标准--2.1解决问题--先思考
2.2程序应该是具有可读性的短文
3.程序的使命--程序员想法的清晰呈现,开放,普适
选语言
0.选python--学习简便,能解决实际问题,能够支撑多个学科(程序包,支撑程序)
1.python理念--简洁
2.最佳实践语言--python,支持很多
3.开放源代码的软件--python
4.无最好的语言
计算
0.什么是计算--是由人类或机器对数据进行操作
1.什么是计算机--进行计算的实体,其特征:能接受数据,计算机必须由计算能力
e.g.人脑--神经细胞内信号受用远慢于电力传输的化学变化传输,且内置1ms/神经细胞的时间延迟,“触发”是对信号数量(多少个神经元在被触发)和信号强度(多少神经递质被传递到突触)的组合进行响应
2.计算进化--生物物种的进化--计算的过程
计算输入的是生物尸体接受的环境变量
计算过程是基因编码调整适应的过程
计算输出的是遗传密码修改的适应结果
3.计算机--3.1开关--bull —0,1—
3.2晶体管--1947,bell实验室William Shockley,John Bardeen和Wlater Brattain(1956 Nobel Prize)尺寸更小,数量更多,功能更加强大,更快
Chapter1 开始编程
入门
注释:向人们解释我们要计算机做什么
#好的注释不是重复代码或解释代码,而是指出代码想要做什么,抽象层面上的意义
#若代码包含新颖,值得关注的方法
标记
关键字:and, del, from, not, while, as, elif, global, or, with, assert, else, if, pass, yield, break, except, import, print, class, exec, in, raise, continue, finally, is, return, def, for, lamba, try
运算符:+ — * ** / // % << >> & | ^ ~ < > <= >= == != <> += -= *= /= //= %= &= |= ^= >>= <<= **=
标点符号和分隔符:( ) [ ] { } , : = ^ : ' " # @ \
命名规则
1.字母或下划线开始
2.除首字符外可以是任何字母数字下划线的组合
3.不能是关键字中的组合
4.长度不限,大小写敏感
5.推荐骆驼拼写法(camelCase),单词间无空格,有新单词加入则其首字母大写
命名空间
解释器维护
保存名字和相关值的列表
Long int, Short int,
0~,0x~,2+3j(复数)
str("",'')……,bool(true=1,false=0)
列表list[4,3.57,'abc']
字典dict{"Jons":3456323,"Larson":23323232,"smith":34324234243}
集合set set([1,3,4])
控制语句
选择语句if
布尔运算符<,>,<=,>=,!=
循环while , for
while 先循环再判断
for 先判断再循环,迭代
位移 >> <<