python学习day1
今日课程概述
1.计算机基础
计算机的组成
人机交互
DOS命令
计算机存储数据 -- 进制
计算机运行数据 -- 禁止的存储状态
2.计算机语言
C C++ C# Java php Python
Python介绍
1.计算机基础
1.计算机的组成
计算机之父:冯.诺依曼
计算机是由5部分组成的
输入设备 输出设备 控制器 存储器 运算器
输入设备
键盘 鼠标
输出设备
显示器 音响
机箱
主要部分 主板 ----- 是链接其他设备的一个载体,为CPU
内存卡 显卡 硬盘提供了存放平台
CPU --- 相当于人体的大脑, 计算机的中央处理单元, 计算机的运行是由CPU来完成的
CPU的个数是由电脑核数决定的 --- 我的电脑 --- 右击 管理器 --- 设备管理器 --- 处理器(有几个处理器 就有几个CPU), 也称之为处理器, 是计算机运算和控制的核心
内存 ---- 计算机的运行内存
负责的是存储 CPU与硬盘上数据交互产生的临时数据, 程序关闭 数据会被清空的
硬盘 --- 存放资料和软件的数据设备 特点:容量大 存放数据持久, 称之为数据仓库
显卡 ---- 显示器呈现画面 跟显卡是有关系的 --- 图片显示效果好 需要有一个好的显卡配置
2.软件开发
什么叫软件???? --- 一系列按照特定顺序组成计算机的数据与指令
软件就是通过一系列指令来完成数据的运算与传递 最后形成软件
软件的分类:
系统软件和应用软件
系统软件 --- 操作系统
windows MacOS Linux
应用软件:
微信 QQ
3.人机交互
软件的出现实现了人与计算机之间更好的交互
交互分为两种模式:
图形化界面交互
交互形式简单 易上手 --- 这种是常用的交互方式
DOS命令交互
需要有一个控制台(命令提示符工具) 在控制台上输入计算机识别的指令 进行完成对应的交互
4.DOS命令
打开运行 输入cmd 进入(刚打开时显示当前用户所在位置)
1.打开其他路径
cd(此方法只能打开文件夹(处于打开文件夹目录下))
a.要打开的文件夹在同一个盘符下时
输入 盘符:\(夹杂在中间的路径)\\ 例:C:\Users\11143>cd Desktop
ps:输入文件夹名首字母或前几个字母 可使用Tab键自动寻找补齐文件夹名
b.不同盘符的情况:
需先切换盘符--直接输入 盘符:+回车 (切换盘符后可遵循a的做法)
特殊指令
cd. -- 表示显示当前目录
cd.. --表示返回上一级目录
cd/ --表示直接回到根目录(盘符目录下)
2.显示当前目录下所有内容:
直接输入 dir
3.创建目录
md 路径 ps(只能创建文件夹)
4.删除路径
rd 路径 ps(只会删除路径最后的子文件夹,且子文件夹下如果再有文件无法删除)
例 rd c:\11143\Desktop\test\subtest\subtest_1
rd /s 路径 ps(直接删除子文件,且不论子文件下是否存在文件(会提示是否删除))
5.打开指定文件
直接输入文件路径 需要指定文件的所在路径+文件全名 例c:\Users\11143\Desktop>a.txt
6.创建文件
echo 内容 > 文件路径
echo 是将指定内容输出到指定文件
> --- 重定向
如果文件存在 会清空文件 再将内容输入
>> -- 重定向
如果文件存在 不清空文件 直接将内容拼接到原有内容后
7.查看文件内容
type 文件路径 例c:\Users\11143\Desktop>type b.txt
hello_b
hello_b
8.删除文件
del 文件路径
del *.文件后缀名(直接删除同后缀名文件)
del .文件名.* (删除同名文件)
del *.* (删除所有文件,会访问是否删除)
9.重命名
ren 原名 新名
10.拷贝文件 (只能拷贝文件,不能拷贝文件夹)
copy 源文件路径 新文件路径
11.移动文件
move 源文件路径 新文件路径
12.清除控制台(清空cmd界面)
cls
13.退出cmd
exit
5.计算机的数据存储
计算机的作用 --- 存储数据 --- 运算数据
计算机存储数据时 并不是直接存储的这个数据, 以数据对应的二进制格式来进行存储的
进制 : 人们规定的一种进位方式
十进制 :逢十进一
计算机存储数据 --- 采用的是二进制: 逢二进一
常见的进制:
十进制
二进制
八进制
十六进制
每种进制的符号集
十进制的符号集:表示符号 不写默认数据就表示的是十进制 0d
0 1 2 3 4 5 6 7 8 9
逢十进一: 10 =====> 十
二进制的符号集:表示符号 0b
0 1
逢二进一:10 =====> 二
八进制的符号集: 表示符号 0o
0 1 2 3 4 5 6 7
逢八进一:10 ====> 八
十六进制的符号集: 表示符号0x
0 1 2 3 4 5 6 7 8 9 a b c d e f
逢十六进一:10 ====> 十六
5.1进制中每位数对应的含义
十进制的数据
12345 = 1 * 10^4 + 2 * 10^3 + 3 * 10^2 + 4 *10 + 5 * 10^0
每位上数的含义 ====> 该位上的数 * 进制^(位数-1)
二进制中的数据
0b10110 = 0*2^0 + 1*2^1 + 1 * 2^2 + 0 * 2^3 + 1*2^4
假设二进制上每一位数都是1
二进制数据从右到左表示的含义:
意义 == 2^(位数-1)
0b1111.11
===> 展示出来的数据
2^3 2^2 2^1 2^0. 2^-1 2^-2 2^-3
5.2 进制转化
二进制转十进制
按权展开求和 ---> 二进制中每位数的 位数(从右向左数)-1次幂 后求和
0b 1 0 1 1
8 +0+2+1 ===> 0d11
二进制转八进制 (因为八进制最大数为7 每三位二进制的数可以满足八进制的符号集)
0b000 0
0b001 1
0b010 2
0b011 3
0b100 4
0b101 5
0b110 6
0b111 7
二进制转化为八进制,从右向左三位三位一次分开,前面不足三位的用0补足,
每三位按权展开求和,后将每个和拼接在一起。
例:0b 001 011 011 010
1 3 3 2 ----->八进制为 0o1332
二进制转十六进制 (因为八进制最大数为15 每四位二进制的数可以满足八进制的符号集)
0b0001 1
0b0010 2
0b0011 3
0b0100 4
0b0101 5
0b0110 6
0b0111 7
0b1000 8
0b1001 9
0b1010 a
0b1011 b
0b1100 c
0b1101 d
0b1110 e
0b1111 f
二进制转化为十六进制,从右向左四位四位一次分开,前面不足四位位的用0补足,
每四位按权展开求和,后将每个和拼接在一起。
例
0b0110 1110 1101 0101
6 e d 5 -----> 0x6ed5
十进制转二进制
采用8421码(将十进制数据减去离其最近的2^n的数据)
例
53(离其最近的为32)2的5次幂存在故第一位为1
53 - 32 = 21(离其最近的为16)2的4次幂存在故第二位为1
21 - 16 = 5(离其最近的为4)2的平方存在故平方位置为1
5 - 4 = 1 2的0次幂存在 故最后一位为1
不存在的2的次幂位置均为0
故 53===> 0b110101
53.625 ===> 0b110101.101
小数部分:
方法一:0.625可分为 0.5+0.125
0.5为2^-1 0.125为2^-3
故由于2的-1次幂存在所以小数点后第一位为1
由于2的-3次幂存在所以小数点后第三位为1
由于2的-2次幂不存在所以小数点后第二位为0
方法二:小数部分乘以2,如果结果大于1(对应位置就为1),
如果得数小于1(对应位置就为0),继续乘以2,
每当有大于1的结果(乘以2 的次数的位置就为1),
直到为整数为止。(为整数最后一位为1)
例:
0.625
*2
-----
1.25 ------> 1
0.25
* 2
----
0.5 -----> 0
0.5 * 2
1.0 ------> 1
从上往下取值: .101
八进制/十六进制转十进制
按权展开求和
权 -- 八进制的权是8
十六进制的权是16
例:0o532 ===>5*8^2 + 3*8^1 + 2*8^0
6.计算机存储数据内存是如存储的
计算机运算数据的时候 --- 需要把数据存放于内存中 由CPU进行运算 否则是无法处理数据的
数据在内存中是如何存储的?????
内存:
抽象理解:
一个开关,两种状态:打开和关闭, 用0和1表示这两中状态.将8个开关存放于一个房间中,这个房间称之为字节,
一个开关称之为位[一个0或者一个1称为1位bit], 每个房间都有自己的编号. 看做是"地址", 把无数个具有这些
特征的房间组成摩天大厦 ----> 内存
内存中的基本数据存储单位 ---- 字节Byte
1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
PB
DB
不同的数据 占用的字节数据是不一样的, 例如 整数 4个字节
在内存中存放一个整数, 需要开启4个房间存放一个整数 ----> 把4个房间打通了 存放1个整数 -----> 这
四个房间就相当于是1个房间 ----> 该房间有对应的地址 ---> 通过地址就可以找到数据
存储方式:
不同的数据开辟不同的字节空间 在内存中存储数据
4个字节 --- 32b ====> 32个0或者1组成一个整数
字节数一确定 ----> 二进制数据的最高位就确定了 ----> 通过这个最高位 可以判定数据的正负
正数的二进制数最高位是0
负数二进制数最高位是1
1000 0000 0000 1111 0000 1111 1111 0000
7.二进数参与运算时的存储形态: 二进制数的形态: 原码(本身的样子) 反码 补码
正数:
原码 反码 补码的形态是一致
负数:
原码: 在其正数原码的基础上 将最高位置为1
反码: 在负数原码的基础上 除了最高位 其余为按位取反(0变1 1变0)
补码: 在负数反码的基础上 加1
如果想看二进制数表示的十进制数据的话 查看的是二进制数的原码
数据运算的时候 得保证数据的正确性
假设数据存储的时候 占8位
假设数据存储时 是以二进制的原码形式存储的
12 - 18 ====> 12 + (-18) = -6
12的原码:
0000 1100
-18的原码
1001 0010
0000 1100
1001 0010
---------
1001 1110[原码] ----> 负数-30 [错误的]
假设以反码形式进行运算
12 反码 ---> 0000 1100
-18的反码 ----> 1110 1101
0000 1100
1110 1101
---------
1111 1001[反码] ----> 原码:1000 0110 [-6][正确的]
-12 + 18
-12的反码: 1111 0011
18的反码: 0001 0010
1111 0011
0001 0010
---------
1[溢出 - 忽略不计] 0000 0101 =====> 5[错误的]
假设以补码形式运算:
12 + (-18)
12补码: 0000 1100
-18的补码: 1110 1110
0000 1100
1110 1110
---------
1111 1010[补码] --->反码: 1111 1001 ----> 原码: 1000 0110 ----> -6[正确的]
-12 + 18
-12的补码:1111 0100
18的补码: 0001 0010
----------------------------
1[溢出] 0000 0110 ----->6[正确的]
注意:计算机中数据运算时采用的是补码的形态
(故计算机上的所有计算都是以补码形态计算的)
2.计算机语言
计算机语言 ---- 计算机能够识别的语言, 并且可以根据语言的指定 生成对应应用程序
常见的计算机语言:
C C++ C# java Objective-C php Python
如果想快速的学习一门语言 --- 需要先了解该语言的语法
学编程 ==== 学语法
当把一门计算机语言的语法学通了 其他的就都通了
2.1Python简介
2.1.1 Python的发展史
Python是由荷兰人"硅叔"Guido van Rossum 于1989年研发, 正式发版的那一年是1991年
Python的底层实现是C语言
1999年支持网站开发 ---- 开始跟java PHP抢饭碗
2000年出现的Python2.0 --- 构成了Python语言框架的基础
2004年出现Python2.4 ---- 同一年 web框架Django出现了
2008年出现了Python2.6
同一年 年底 出现了Python3.0 [刚出现的时候并没有兴起, 与2.x的版本不兼容的 对于3而言2.x很多都失效了]
2010年出现了Python2.7 --- 只是Python2.x到Python3的一个过度
2020年不会再维护Python2.x的版本的
现在学的是Python3
2.1.2 Python语言的特点
Python是一门面向对象, 动态类型的, 解释型计算机语言
Python可以跨平台[平台指的是操作系统 -- 前提需要安装Python的环境]
只要有Python环境 可以在任意平台上执行Python程序
2.1.3Python的优缺点
优点:
1.易于学习[Python 有相对较少的关键字, 结构简单]
2.易于阅读[代码结构比较简单]
3.易于维护[Python源码相对于比较容易维护的]
4.有一个广泛的标准库
5.可嵌入性 [底层是由C实现的, 可以将Python程序嵌入到C或者C++程序中]
6.可扩展性[不远开发新的算法 可以直接使用C或者C++来完成指定的程序]
7.GUI(图形化界面)
缺点:
1.运行速度慢
Python3比Python2慢
解释型语言 与C程序比较 需要向计算机解释一行执行一行
2.代码不能加密
写完程序发布 只能发布源码
2.1.4Python擅长的领域
网站开发 ---- 应聘的岗位称为后台
爬虫 --- 从网站上爬取数据
数据研发 ---- 数学是万能的
2.2.1安装Python环境
点击Add Python to Path ---->
将Python环境路径添加到 环境变量 Path字段下
添加到Path字段下的好处: 可以在任意位置进入Python环境[执行python.exe程序]
在命令提示符下指令的执行情况:
先在环境变量的path路径下查找是否有该指令对应的路径 如果有就直接执行了
如果没有 查看命令提示符的当前路径下是否是该指令对应的路径 如果是也就执行了
如果不是 提示不是内部或者外部命令
忘记点击 --- 可以自己配置环境变量
windows7
环境变量设置时, 使用分号来进行路径分割的 所以添加一个新的路径要先使用分号分割
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;C:\Python\Python36\Lib\site-
packages\django\bin;C:\Python\Python36\;C:\Python\Python36\Scripts\;
简单的数据类型
整型 ---- 表示的数据都是整数
浮点型 --- 表示的数据都是小数
布尔类型 --- 数据只有两个True False
字符串类型 ---- 标识 成对的引号[不区分单双引号]
使用引号包含的单个或者多个符号
此时输出的数据不是数值类型的 也不是布尔类型的 需要使用引号包含 借助print输出
注释:
以后写代码 除了数据可以写汉字 其他全是英文状态下的
Python提供的方法等也都是英文 ---
注释 --- 不是代码 不可以被执行
只是用自己语言解释代码的含义 便于理解记住
两种情况:
单行注释 --- 仅对一行有效 换行则失效
格式: #注释内容
多行注释:三对引号
'''注释内容 '''
或者
"""注释内容"""
print的使用
Python3中print是一种方法
print(数据)
help(功能) --- 查看指定功能的详细摘要(等同于键盘上的蔡徐坤键+鼠标左键点击关键字)
print是一种输出方法 输出指定内容
print("hello Python world")
help(print)
print(values, sep=' ', end='\n', file=sys.stdout, flush=False)
values --- 表示要输出的内容
可以输出多个数据,每个数据使用逗号隔开
等于号是赋值的意思
sep --- 输出内容的分隔符 默认是空格(例 print(12,,3,2,1)输出为 12 3 2 1)
可重新赋值(例print(1,2,3,sep="+")输出为1+2+3)
\n表示的是换行
end -- 表示输出内容的结束符 默认是换行(只对下一行的结束符命令有效 不能永久修改)
输出多个数据
print(10, True, "hello")
重新设置输出内容之间分隔符
print(99, 88, 77, sep="*")
\n表示的是换行
print("hello world")
print("hello\nworld")
修改输出内容的结束符
print(37, 28, 51, end="------")
print(99, 28, 71) ------------->(这一行输出后与上一行平行以“------”链接)
print(100)------------>(这一行输出后会自动换行)
将数据输出到指定文件
1.在程序中打开文件 向文件中写入数据
如果只写一个文件路径的名字 表示这个文件与当前文件同一个目录
w --- 表示向文件中写入内容 如果文件不存在会创建文件 如果文件存在会清空文件
a --- 表示向文件中写入内容 如果文件不存在会创建文件 如果文件存在会不清空文件 内容追加形式加入
r --- read 在文件中读取内容
handle = open("print.txt", "w", encoding="utf-8") 这个方法会返回一个操作文件的手柄 需要获取这个手柄
print("睡觉的站起来", file=handle, flush=True)
浙公网安备 33010602011771号