一、计算机简史
电脑的学名就是计算机,最早先是用来做计算的工具。
1623年,法国数学家帕斯卡,这哥们三岁丧母,由担任税务官的父亲抚养长大。19岁的时候,帕斯卡发明人类有史以来第一台机械计算机 -- 帕斯卡加法器。
1662年与世长辞,
不久后,德国大数学家拉布尼茨看到了帕斯卡的加法计算器,很感兴趣。
1674年造出更完美的计算机。
1700年的某天,莱布尼茨的朋友送他一个中国的易图,受启发提出二进制运算法则。
第一代:电子管计算机,1946-1958
第二代:晶体管计算机,1956-1963年,程序员乃至整个软件行业萌芽
第三代:集成电路计算机,1964-1971,操作系统也日趋完善
第四代:大规模集成电路计算机
二、计算机结构
电脑之父:冯·诺依曼,提出了计算机的五大部件:输入设备、输出设备、存储器、运算器和控制器。
输入设备:向电脑提供数据
输出设备:向我们提供数据
主板:连接其他所有设备,是其他设备的载体
CPU:中央处理单元,人靠大脑想事情,计算机靠CPU
硬盘:存储资料和软件数据的设备,断电数据不丢失,也称为电脑的数据仓库
内存:负责硬盘与CPU之间的数据交换,存储系统中的临时数据,断电后数据丢失
显卡:显示器想要呈现画面,显卡是关键,负责在显示器上显示信息,就像是人的眼睛,没有显卡,电脑就无法形成图像
电源:供电的网卡:帮助我们上网的
其中最重要的就是:CPU、硬盘、内存
三、编程语言介绍
一个不会中文的美国人,和一个不会英文的中国人,如何交流?
想办法解决~找个翻译。
同样,计算机只懂 0 和 1组成的代码,如果人类想命令计算机做事,就要用 0 和1告诉计算机做什么事情,也就是用 0 和 1 与计算机沟通,很累。
但是,计算机又无法理解人类语言。
这不就是 一个不会中文的美国人,和一个不会英文的中国人。
计算机讲的是机器语言。
怎么办?
定义一套全新的语法规范,说明如何将人类语言转为计算机语言,这样,就能使用人类的语言告诉计算机做事。这就是编程语言,将编程语言翻译成机器语言,这个过程叫编译。
学编程 == 学语法规则。
编程语言有很多种,比如 python、golang、java、c++,这样的语法规范,一共有 六百多套。
机器语言,0 和 1 组成的代码汇编语言,本质上和机器语言相同,只不过是纯英文缩写,更容易识别和记忆高级语言,和汇编相比,高级语言将多个相关的机器指令合一,去掉了具体的操作。
有很多套与计算机交互的语言,六百多种编程语言。
c 各个操作系统的开发语言,1973
c++ c语言的加强版 1983年贝尔实验室
java 1995年 sun 公司开发
php 1994年,纯web开发语言
python 1989年诞生,刚开始被用作脚本语言,处理一些简单的任务,与 Unix同年诞生,1991年,python发布第一个正式版本
c# 微软发布的一个面向对象的、运行于 .net 之上的高级语言
ruby 一个简单快捷的面向对象的脚本语言,日本人 松本行弘perl超强大的文字处理能力,是Unix平台上的语言,可以任何人都看不懂的代码
shell 脚本语言,简单易学,基于Unix,运维人员必学
gogolang ,谷歌 2009年发布的,被称为21世纪c语言,同时具有 python简洁的特点,也具有c语言高性能的特点
JavaScript 当下使用最广泛的编程语言,主要用来写前端
nodejs 后端的、全栈式语言
四、开发语言分类
编译型语言和解释型语言
计算机本身是不识别高级语言的,当我们运行一个程序的时候,需要一个翻译来把高级语言转为机器语言。
这个翻译的形式,有两种:
编译:在程序运行前,首先通过编译器,将程序编译成机器语言。比如c语言。写了一个程序用编译器把程序翻译一遍,形成另一个程序把编译后的程序拿给计算机去执行
解释:没有编译的过程,而是在程序运行的时候,通过解释器逐行解释代码写了一个程序计算机看一行,我们翻译一行每次执行程序,都要重新翻译
编译型 VS 解释型
编译型:
优点:程序执行效率高,可以脱离语言环境运行
缺点:编译后,如果修改了代码,那么整个程序都必须重新编译
缺点:不同操作系统,使用的机器码不同,需要针对性的进行编译
解释型:
优点:有良好的的平台兼容性,在任何环境都能运行(前提是装了解释器)
优点:修改代码直接修改就可以,快速部署,不需要停机维护每次运行都需要重新解释一遍,性能上不如编译型语言
动态语言和静态语言
动态语言:在运行期间才会去做数据类型检查的语言,也就是说,在使用动态语言写代码的时候,不需要为任何变量指定数据类型,python就是一种典型的动态类型语言。
静态语言:数据类型在编译期间检查,写代码的时候,必须为变量指明数据类型,c语言和java就是静态语言。
强类型定义语言和弱类型定义语言
强类型:一旦某个变量指定了数据类型,后续就不能更改,除非进行类型的强制转换,不然 这个变量永远是这个数据类型。比如你给一个变量 a 定义为整型,那么你就不能用小数为 a 赋值。
弱类型:数据类型可以被忽略,一个变量可以赋予不同类型的值。python就是弱类型的。
python是一个弱类型,动态语言。
五、python语言介绍
python的特点
解释型语言,意味着开发过程中没有了编译这个环节交互式语言:可以一边写代码,一边得到反馈
面向对象的语言:支持面向对象的风格和代码封装
初学者的语言:对初级程序员来说,python是伟大的,因为他十分易学
python 主要应用领域
云计算,云计算领域最火的语言
优秀的web开发语言:豆瓣、油管
科学运算、人工智能
系统运维,运维人员必备语言
金融,量化交易、金融分析
有哪些公司在用python
谷歌:谷歌广告、谷歌爬虫
CIA:美国中情局网站就是python开发的
NASA:美国航天局大量使用python
YouTube:全球最大的视频网站
Instagram:美国最大的图片社交网站
Facebook:大量的基础库是使用Python开发的
豆瓣:该公司几乎所有业务都是python开发的
知乎:国内最大的问答社区
春雨医生:国内知名的在线医疗网站
搜狐、金山、腾讯、盛大、网易、百度、阿里、土豆、新浪,等公司,都有python开发的
python是一门动态解释型的弱类型定义语言。
python的缺点:运行效率低代码不能加密线程不能利用多CPU
六、简单逻辑判断与缩进介绍
age = intput("请输入年龄>>>")
print(age)
在程序中预设一个年龄,然后让用户去猜。
age = 20
guess_age = input("请输入你猜测的年龄>>>")
guess_age = int(guess_age)
if age == guess_age:
print("恭喜你猜对了")
else
print("不好意思猜错了")
在python中 ,一个等号代表赋值,两个等号代表相等判断。
每个判断内的代码前方都有一块空白,
这个空白,我们就称为缩进,
去掉这段空白,代码逻辑就会异常。
并且不允许混用缩进官方建议使用4个空格作为缩进
如果逻辑判断有很多条,可以使用 elif,比如判断某个学生的成绩
score = int(input("请输入学员成绩>>>"))
if score > 90:
print("优秀学员")
elif score > 80:
print("成绩良好")
elif score > 70:
print("成绩一般")
elif score >= 60:
print("刚及格")
else:
print("不及格,回家挨揍")
在 if 逻辑判断中,如果某个判断成立了,就不会执行后面判断,如果所有判断都没成立,就执行else,else不是必须写的。
逻辑运算符
and,与运算符,需要两边同时成立,才为真,任意一边不成立,就是假
num1 = 1
num2 = 2
num3 = 3
if num3 > 2 and num2 > 9:
print("pass") # 这个pass不会被打印出来
or,或运算符,两边任意成立一个,结果就是真,两边全不成立,结果才为假
num1 = 1
num2 = 2
num3 = 3
if num3 > 2 or num2 > 9:
print("pass") # 这个pass会被打印出来
!,非运算符,就是取反的意思
num1 = 1
num2 = 2
num3 = 3
if !(num3 > 2 or num2 > 9):
print("pass") # 这个pass不会被打印出来
判断三个数字的最大值和最小值(不考虑相等的情况)
测试用例设计思路:
第一个数字最大的两种情况
第二个数字最小
第三个数字最小
第二个数字最大的两种情况
第一个数字最小
第三个数字最大的两种情况

七、循环
之前写的猜年龄小游戏只能猜一次,现在希望添加功能,让用户一直猜,直到猜对为止,怎么做呢?
上述代码实现了用户多次猜测的需求,但是却引入了一个bug,即使用户猜对了,也会提示用户继续猜,这显然不合理,我们希望用户猜对以后,游戏就结束了。
break 的作用就是完全终止整个循环,我们判断用户输入正确,就直接使用 break 结束循环。
通过 while 循环,打印0-100之间所有的整数
加一个需求,如果数字能被 3 整数,就不打印,怎么做
。
continue 的作用就是跳过本次循环,不再执行后面的代码。
可以再 while 循环后面加一个首尾的语句,在没有 break 或代码报错的前提下,else中的内容会在循环结束后执行。
for 循环用于迭代序列(列表、元组、字典、集合、字符串)
for 循环也可以使用 break 语句和 continue 语句。
如需循环指定的次数,可以使用 range 函数,range 函数返回一个数字序列,默认情况下从 0 开始,并默认,每次循环递增1,直到指定的数字结束。
八、列表、元组操作
列表使我们以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。
定义一个列表:
元组其实和列表差不多,也是存一组数据,只不过,元组一旦被创建,就不能修改,所以又叫只读列表。
程序练习:
请写出以下购物车程序启动程序后,让用户输入自己的工资,然后打印菜单列表(要打印编号和商品名,商品名从一开始数)允许用户根据商品编号购买商品用户选择商品后,检测余额是否足够,足够就直接扣款,不够就提醒充值可随时退出程序,退出时,打印已购买的商品和余额
九、字典
字典是一种 key-value 的数据类型,使用起来有点像新华字典。新华字段通过拼音、笔画查找内容。
python中的字典,通过 key 查找内容。
十、集合
https://www.cnblogs.com/shuaiyuan/p/14985561.html