本章大纲
了解python
安装python
运行操作
一、了解python
图像处理,代码示例:
首先,我们需要的工具有scipy, numpy, Image, matplotlib.pyplot。具体安装方式为
安装命令:pip3 install pillow
pip3 install numpy
pip3 install scipy
pip3 install matplotlib
pip3 install Image
上面命令官网下载失败,可在豆瓣源安装,如:
pip3 install matplotlib -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
进行图片处理时我们需要,导入python lib,如下:
from PIL import Image,ImageFilter
import matplotlib.pyplot as plt
1.打开图像并转化为矩阵,并显示
im = Image.open("/Users/用户名/PycharmProjects/python基础/400.jpeg")
plt.figure("xintian-fish")
plt.imshow(im)
plt.show()
显示图片
im.show()
print('图片尺寸:', im.size)
print("图片模式:", im.mode)
print("图片格式:", im.format)
浮雕
im.filter(ImageFilter.EMBOSS).save("/Users/用户名/Downloads/fishRed.jpg")
im2 = Image.open("/Users/用户名/Downloads/fishRed.jpg")
im2.show()
了解python版本
了解python版本
Python2.7与3.7区别
总体python3更完善高效
print(statement vs function)
Integer division (3/2 = 1 vs 3/2 = 1.5)
Unicode
raw_input (改为input)
range/xrange
raise/handle exception
........
为什么选择python3?
Python2 在2020年不再维护;
第三方库都已基本支持python3,除了一些不再维护的工具RIDE
为什么选择32位 不选择64位?
window上一些需要二进制库,只有32位版本,64位python解释器不能加载
了解python代码执行
程序代码执行
cpu+内存 = 大脑
二进制可执行程序里面包含的机器指令
cpu 只懂机器指令
从哪个地址读取数据
跳转到哪个地址继续执行指令
像C语言,都需要编译连接,产生机器代码
什么是编译程序(编译语言:C语言)?
特点:只要一万行代码里面只要出现一行语法出错,这些代码就不能运行,只有在没有错误语法情况下才可运行
何为编译?
首先我们要明白两个概念,源程序和目标程序,源程序:是指用源语言写的,有待翻译的程序,如我们自己写的一段c++代码,这段代码只有我们自己能看懂,计算机是不懂,计算机只能理解二进制。目标程序:源程序通过翻译程序加工以后生成的机器语言程序。这是计算机可以理解的语言。把源程序转化为目标程序的操作就叫做编译。
何为链接?
C语言代码经过编译以后,会变成了二进制形式的目标文件(Object File)--- 对于 Visual C++,目标文件的后缀是.obj
,对于 GCC,目标文件的后缀是.o
。但此时的代码还不能运行起来。因为它还需要和系统提供的组件(比如标准库)结合起来,这些组件都是程序运行所必须的。例如我们要在屏幕中输出字符,这必须调用系统提供的库才能够实现。
这就是链接,经过链接才会生成 可执行程序 (如 win 平台上的exe)
总结
不管我们编写的代码有多么简单,都必须经过「编译 --> 链接」的过程才能生成可执行文件:
- 编译就是将我们编写的源代码“翻译”成计算机可以识别的二进制格式,它们以目标文件的形式存在;
- 链接就是一个“打包”的过程,它将所有的目标文件以及系统组件组合成一个可执行文件。
何为编译程序?
计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"编译程序"翻译成机器语言形式的目标程序。
翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。如 C(c++)程序的生成要经过: 编写源代码->编译->链接
另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。如JavaScript、Python等。
编译程序与解释程序最大的区别之一在于前者生成目标代码,而后者不生成;此外,前者产生的目标代码的执行速度比解释程序的执行速度要快。
除此以外,汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序,它是为低级语言服务的。解释程序和编译程序是为高级语言服务的。
java是一种半编译、半解释执行的语言?
对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class文件,然后在通过JVM从class文件中读一行解释执行一行,所以它是解释型的语言。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。
Python 解释器
python不需要编译成机器代码
解释器:解释执行代码
Python 解释器的概念
上面的Python代码文件,我们怎么让计算机去读取并执行呢?
刚才我们说Python语言是编程语言,是计算机能听懂的语言。
计算机的大脑是CPU, 中文名叫中央处理器,它 仍然不能直接处理 Python 语言。
CPU 只能直接处理机器指令语言,那是一种由0和1 数字组成的语言,像下面这样,
这是一种我们人很难直接写出来的语言。
所以,我们需要一个翻译, 把Python语言翻译成 计算机CPU 能听懂的 机器指令语言,这样计算机才能按照我们的Python程序的要求去做事。
就像如果你要让一个美国人干一件事,你又只会说中国话,那么你就需要一名会说英语的中国翻译, 你和翻译说中国话,翻译听了,再对美国人说英语,告诉他怎么做。
让计算机执行Python程序时,这个翻译就是 Python解释器。
Python解释器本身也是个程序, 它是解释执行 Python代码的,所以叫解释器。
没有它,我们的Python代码是没有办法运行的。
我们运行Python程序时,先运行Python解释器,通过这个解释器,去读取我们的Python程序文件,这个解释器再以机器指令语言告诉CPU如何去做。
其原理如下图所示:
所以说要运行Python程序,必须要有 Python解释器。
了解python种类
不同实现语言,实现方式:
Cpython--C
Jython--Java
lronPython--.NET
不同平台
Linux,Window,Unix,Mac OS......
X86(pc,笔记本,手机,平板)ARM(平板,手机)......
都可以运行同样的python脚本
注意:有些平台相关性代码不能跨平台(与Java相比,跨平台性差)
安装python
下载安装请参考一下文章:
Mac:https://www.jianshu.com/p/85f42ce67046
window:https://www.jianshu.com/p/c26c637fb2b9
配置环境变量:
Mac:https://www.jianshu.com/p/09c84e1c200b
运行操作:
三种运行方式:
cmd-xx.py文件
python解释器
pycharm
print 用法--终端运行
输出字符串到控制窗口
写代码文件:print(’hello world!‘)
print("hello world!")
执行方法:python 脚本文件名
输出到终端屏幕上
python解释器
退出解释器:contrl+Z,exit(),quit()
终端-xx.py文件、python解释器、pycharm
print 用法--终端运行:首先创建hello.py文件,打开终端进入文件所在目录,输入python hello.py回车,返回文件内容
python解释器(退出解释器:contrl+Z,exit(),quit())
pycharm--它是一个IDE:集成开发环境,代码编辑工具
创建项目
File -> NewProject... -> location:项目路径(新建项目的默认路径在工具目录中,必须修改项目路径) -> 点击Project Interpreter:python3.6下拉按钮 -> 选择Existing interpreter(本地环境) -> 点击Interpreter输入框右侧增加(比如:··· )按钮 -> System Interpreter -> 点击Interpreter输入框右侧增加(比如:··· )按钮 -> 找到本地python.exe解释器的安装路径 -> 点击 OK
New environment using--虚拟环境
先创建包:选中已经创建的项目右键 -> New -> Python Package
再创建文件:选中已经创建的包右键 -> New -> Python File
接着就可在创建的文件中编写代码了,编写代码完成之后,在当前代码页面任意处右键,选择Run‘文件名’,即可运行文件
python文件中的代码要素:
python是大小写敏感语言,所以print大小写敏感
第一行代码必须顶到最左边,不能有空格
第一行语句前面可以有空行
行首对⻬