一、软件开发的常识
1.什么是软件
一系列由特定顺序组织起来的计算机数据或者指令
常见的软件:
系统软件:windows,Linux,mac os
应用软件:QQ,一系列的播放器,一系列的浏览器等 app
2.什么是开发
就是制作软件的过程
软件的出现实现了人与计算机之间的交互
交互方式:
图形化界面:通过一些现成的界面完成一些任务
命令行方式:在控制台输入一些指令,计算机帮忙完成某件事情
3.DOS命令行
cd 进入指定目录【文件夹】
cd .. 退回到上一级目录
cd / 退回到根目录
dir 列出当前目录下所有的文件夹以及文件
4.计算机编程语言介绍
人类语言: 人与人沟通的语言
计算机语言: 人与计算机沟通的语言
计算机的组成:
1, 硬件: 如鼠标,键盘,显示器,显卡,内存条, 硬盘,主板等计算机设备或部件
2, 操作系统: 基于硬件,用于管理和运行应用程序,是硬件和软件的桥梁
3, 软件: 应用程序, 依赖于运行的操作系统
常见编程语言:
C, C++, JAVA, PHP, PYTHON, JS,html,css, Go, Object-C, Swift, 易语言。
C: 底层开发, 面向过程,速度快
C++: 面向对象,嵌入式,Android底层,做游戏, 跨平台
Java: 后端语言, 开发企业级系统,开发Android
C#: 后端语言, 用于Unity3D游戏,如:王者荣耀
php: 后端语言,号称世界上最好的语言。
Python: 高层语言,简单易学。
OC: 号称世界上最优雅的语言,开发iOS
Swift: 开发iOS, 开源(开放源代码)
JS: javascript, 前端必备语言
html + css: html:前端的标签, css:样式</pre>
二、Python的概述
1.Python语言
python是一种解释型, 面向对象, 动态数据类型的高级程序设计语言.
脚本语言:c, js, php, python, jsp, asp
弱类型/强类型 弱类型: a = 10 强类型: int a = 10
python由Guido van Rossum(荷兰) 于1989年底发明,第一个公开发行版发行于1991年
2.Python的简介
python是一种解释性语言: 开发过程中没有编译这个环节,类似于PHP和JS语言,是脚本语言
是一个交互式语言: 可以在一个python提示符,直接互动执行程序
是面向对象语言: python支持面向对象的风格或代码封装在对象的编程技术
python是初学者的语言: python对初级程序员而言, 是一种伟大的语言, 他支持广泛的应用程序开发,从简单的文字处理到www浏览器再到游戏都可以使用python
3.为什么学习Python
python语言排行榜, python的薪资, python的就业岗位数量, python发展前景
python应用广泛
Python 是最接近AI(人工智能)的语言
Python 是跨平台的【Python程序可以运行在windows、linux,Macos上,例如:在windows上书写的Python程序,可以在linux或者macos上运行】
4.Python发展史
参考链接: [http://www.cnblogs.com/vamei/archive/2013/02/06/2892628.html]
Python的作者,Guido von Rossum,是荷兰人。1982年,Guido从阿姆斯特丹大学(University of Amsterdam)获得了数学和计算机硕士学位。
1989年,为了打发圣诞节假期,Guido开始写Python语言的编译/解释器, Python来自Guido所挚爱的电视剧Monty Python's Flying Circus (BBC1960-1970年代播放的室内情景幽默剧,以当时的英国生活为素材)。他希望这个新的语言叫做Python的语言 (python翻译:蟒蛇)
1991年,第一个Python编译器(同时也是解释器)诞生。它是用C语言实现的。从一出生,Python已经具有了:类(class),函数(function),异常处理(exception),包括列表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。
5.Python的优缺点【了解】
5.1优点
简单:Python是一种代表简单主义思想的语言
易学:就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法
高层语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
可移植性:由于它的开源本质,Python已经被移植在许多平台上
解释性语言: 类似PHP和JS语言,Python语言写的程序不需要编译成二进制代码而是直接从源代码运行程序。 而 编译性语言比如C或C++写的程序一般是先从源文件编译成二进制代码,再编译二进制代码来运行程序。
面向对象:Python既支持面向过程的编程也支持面向对象的编程
可嵌入性:你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能
丰富的库:Python标准库确实很庞大。
GUI图形界面
5.2缺点
强制缩进
运行速度相对较慢, 因为是高层语言, 打个比方:C语言1s, Java10s, python100s, 但是运行时间都会非常快, 比如c语言0.01ms, python1ms, 网络消耗1s, 那么c语言1.00001秒, python1.001秒, 所以真正运行程序时相差不大
代码不能进行加密【源代码】
6.Python的应用
YouTube:视频网站
Facebook:社交
知乎
春雨医生
Python擅长的区域
web开发:
爬虫开发:
数据分析:
人工智能:算法,高数
后端开发,网站,电子商城,OA系统
三、数据的存储
1.思考问题
1.为什么使用计算机
为了存储数据,快速处理数据
2.数据存储在计算机的什么位置
数据存储在内存(缓存/临时存储)中, 存在硬盘(持久化)
3.计算机如何存储数据的
计算机存储数据【数据包括数字,英文,中文,文件等】, 最终是以二进制存储在硬盘或内存中
计算机是如何存储数字的
2.内存
2.1概述
内存是计算机的组成部分,作用是与cpu沟通的桥梁,计算机中所有的程序都是在内存中运行
内存【Memory】,内存储器,作用暂时存放cpu中的运算数据
2.2抽象理解
一个开关,有两种状态,打开或者关闭,在计算机中使用0和1表示
2.3单位
硬盘:1T
计算机中表示数据的最小单位:比特 【bit ----b】,又被称为位
计算机中处理数据的最小单位:字节【Byte----B】
单位换算:1B = 8b【掌握】
KB MB GB TB PB EB.....DB
存储单位 :
1byte = 8bit
1KB = 1024 byte
1MB = 1024 KB
1GB = 1024MB
计算机在内存中以二进制的形式存储数据【主要使用0和1进行表示】【十进制】
3.进制
3.1 什么是进制
a.进制就是进位的制度,一种进位的方式
例如:十进制:逢十进一
二进制:逢二进一
八进制,十六进制【是由二进制演变来的】
b. 常见的进制:
二进制(0和1)
十进制(0~9的整数)
八进制(0~7的整数,用数字0开头)
十六进制(09和af【不区分大小写】,用0x或者0X开头)
3.2 进制的特点
a.每种进制都有确定的符号集
b.每种进制采用的是位置表示法,位置不同,表示的意义不同,值的不同取决于它所在位的权值有关
举例:
注意:下面的^表示的是次方
145:100 = 10^2
761:1 = 10^0
817:10 = 10^1
145 = 1x10^2 + 4x10^1 + 5x10^0
c.二进制的计算
0+0=0
1+0=1
0+1=1
1+1= 10 【逢二进一】
3.3 进制之间的转换
a.十进制 -> 二进制
转换原理:对十进制进行除2的运算,直到商为0为止,然后将各个步骤中得到的余数倒着写出来.
b.二进制 -> 十进制
转换原理:将二进制按照权展开,相加即可得到十进制
举例:
110 = 1x2^2 + 1x2^1 + 0x2^0 = 4 + 2 = 6 10010110 = 1x2^7 + 1x2^4 + 1x2^2 + 1x2^1= 150
c.二进制 -> 八进制
转换原理:每三位二进制按权展开,相加得到1位八进制,实现思路:从右向左进行分组,每3位为一组,不足是补0,将每一组进行二进制转换十进制的14操作,最后将每一组得到的结果连起来
举例:
10010110 -> 010 010 110 -> 2 2 6 -> 226 -> 0226
1010001 -> 001 010 001 -> 1 2 1 -> 121 -> 0121
d.二进制 -> 十六进制
转换原理:每四位二进制按权展开,相加得到1位八进制,实现思路:从右向左进行分组,每4位为一组,不足是补0,将每一组进行二进制转换十进制的操作,最后将每一组得到的结果连起来
举例:
10010110 -> 1001 0110 -> 9 6 -> 96 -> 0x96
1010001 -> 0101 0001 -> 5 1 -> 0x51
10111110 -> 1011 1110 -> 11 14 -> b e -> 0xbe
111011 -> 0011 1011 -> 3 11 -> 3 b -> 0x3b
e.十进制 -> 八进制或者十六进制
转换原理:
先将十进制转换为二进制,然后再将二进制转换为八进制或者十六进制
f.八进制或者十六进制 -> 十进制
转换原理:
将八进制或者十六进制按照权展开,相加,类似于二进制转换为十进制
3.4 原码,反码,补码
a. 为什么会出现原码反码补码?
数值是正负之分的【原码反码补码主要针对的是负数】
b. 原码反码补码的表示
原码:这个数的二进制表示形式,高位表示符号位,1表示负数,0表示正数
0000 0110
反码:将原码除了符号位之外进行取反【0 -> 1 , 1 -> 0】
补码:在反码的基础上加1【0000 0001】
注意:对于一个正数而言,原码,反码以及补码都是同一个,都是这个数的二进制表示形式
6 -> 0000 0110【原码反码补码】
【面试题】计算机底层处理数据采用的原码,反码还是补码?
10 + (-10) = 0 【0000 0000】
10:0000 1010 -10:1000 1010
验证:
原码:
0000 1010
1000 1010
1001 0100 -> 结论:计算机底层处理数据的时候采用的不是原码
反码:
-10的反码:1000 1010【原】 -> 1111 0101【反】
0000 1010
1111 0101
1111 1111 -> 计算机底层处理数据的时候采用的不是反码
0000 0001【原】 -> 1000 0001【-1原】 -> 1111 1110【-1反】 -> 11111111【-1补】
补码:
-10的补码:1000 1010【原】 -> 1111 0101【反】 -> 1111 0110【补】
0000 1010
1111 0110
10000 0000 -> 1表示溢出
结论:在计算机的底层,处理数据采用的是补码的形式</pre>
4.编码
123 -10
中国 hello
在计算机底层,会存在映射表,则这个映射表被称为编码格式
假设:
a----->1
b----->2
c----->3
h ---->10
abc----->123---->0001 0010 0011
ASCII码:美国人用的编码, 一个字节表示 128
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
例如:
0的ASCII码是48 a的ASCII码是97 A的ASCII码是65
GBK: 中文编码
韩国, 日本
unicode: 国际编码, 万国码
占用2个字节
utf-8 : 以后都是使用这个编码, 国际编码, 中文占3个字节,比较生疏的中文会占4个字节
结论:无论数字,中文,英文或者特殊符号在计算机的底层都是转化为了二进制,然后进行存储
5.存储数据
a.计算机存储数据的过程:
需要先在内存中开辟空间,然后将数据转化成二进制存入内存. 计算机开辟内存空间的最小单位为字节
四、开发前的准备工作
1.版本问题
目前,Python有两个版本,Python2.x 和 Python3.x
注意:3.x不兼容2.x
2.环境安装
环境:官网下载
注意:
a.可以选择默认路径,也可以选择自定义路径,但是在选择的时候,勾选add Path【配置环境变量,好处:每次需要使用Python环境的时候,不需要每次都进入到指定的目录下,在任意的目录下都可以直接访问python.exe】
b.安装软件的时候,尽量在文件夹名称中不要出现中文或者空格
3.编写Python程序的工具
记事本【文本文档】
notepad++ Editplus sublime等
PyCharm
Python
五、第一个Python程序
a, python文件以.py后缀结尾,创建名为hello.py文件
b, 在hello.py中输入以下内容
print("hello world")
c, 黑屏终端输入python hello.py 执行代码
六、Python的编码规范
a.在每个语句的后面不要添加分号,每行最好只书写一条语句
b.括号的使用:运算符中
c.Python中是通过缩进【4个空格】来区分代码块的
d.尽量避免在文件名中出现中文和空格
七、注释
注释在编写程序的时候,给代码添加的一些解释性的文字
作用:可以提高代码的可读性,以便于以后的参考或者修改
注释是解释性文本,在运行程序的时候,会被自动的跳过,不做处理
分类 单行注释:只能注释掉单行的文字 #xxxxxxx
多行注释【块注释】:三个单引号或者三个双引号
注意:对于多行注释,选用单引号或者双引号都可以
如果单纯使用双引号,双引号的注释不能嵌套
中文的出现形式:字符串,注释