现在学习这个确实时间很紧,但是迟早得学,以后PYTHON自动化运维,PYTHON自动测试都需要用的到,甚至可以往数据分析方向发展,刚好最近有数据观组织的python100天计划,就参加了,做好笔记,一个是用于记录学习中遇到的问题,二是对自己起监督作用,希望能够好好坚持下来,加油,老杨!
1、环境搭建
自己操作系统是windows10,使用anaconda 4.2.9、python3.5,还有pycharm。
全英文,看不太懂,而且第一次使用也蒙头蒙脑的整不太清楚,先暂时随便总结一下
参考文章:
1.1 anaconda简介
Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
这里先解释下conda、anaconda这些概念的差别。conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。
进入下文之前,说明一下conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。
1.2 anaconda安装
Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。
安装时,会发现有两个不同版本的Anaconda,分别对应Python 2.7和Python 3.7,两个版本其实除了这点区别外其他都一样。后面我们会看到,安装哪个版本并不本质,因为通过环境管理,我们可以很方便地切换运行时的Python版本。(建议下载3.7版本)
按照安装程序提示一步步安装就好了, 安装完成之后会多几个应用
-
Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
-
Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
-
qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
-
spyder :一个使用Python语言、跨平台的、科学运算集成开发环境。
1.3 配置环境变量
如果是windows的话需要去 控制面板\系统和安全\系统\高级系统设置\环境变量\用户变量\PATH 中添加 anaconda的安装目录的Scripts文件夹, 比如我的路径是D:\Software\Anaconda\Scripts, 看个人安装路径不同需要自己调整.
之后就可以打开命令行(最好用管理员模式打开) 输入 conda --version
如果输出conda 4.4.11之类的就说明环境变量设置成功了.
为了避免可能发生的错误, 我们在命令行输入conda upgrade --all 先把所有工具包进行升级
1.4 创建自己的虚拟环境
创建一个名称为learn的虚拟环境并指定python版本为3(这里conda会自动找3中最新的版本下载)
conda create -n learn python=3
于是我们就有了一个learn的虚拟环境, 接下来我们切换到这个环境, 一样还是用activae命令 后面加上要切换的环境名称
1.5 切换环境
activate learn
1.6 一些简单的命令
activate // 切换到base环境
activate learn // 切换到learn环境
conda create -n learn python=3 // 创建一个名为learn的环境并指定python版本为3(的最新版本)
conda env list // 列出conda管理的所有环境
conda list // 列出当前环境的所有包
conda install requests 安装requests包
conda remove requests 卸载requets包
conda remove -n learn --all // 删除learn环境及下属所有包
conda update requests 更新requests包
conda env export > environment.yaml // 导出当前环境的包信息
conda env create -f environment.yaml // 用配置文件创建新的虚拟环境
1.7 与pycharm连接
打开pycharm,在Setting => Project => Project Interpreter 里面修改 Project Interpreter , 点击齿轮标志再点击Add Local为你某个环境的python.exe解释器就行了
2、python初接触
2.1 hello world!
print('hello, world!')
2.2 python代码中的注释
单行注释:以#和空格开头的部分
多行注释:三个引号开头,三个引号结尾
"""
第一个Python程序 - hello, world!
向伟大的Dennis M. Ritchie先生致敬
Version: 0.1
Author: 骆昊
"""
print('hello, world!')
# print("你好,世界!")
print('你好', '世界')
print('hello', 'world', sep=', ', end='!')
print('goodbye, world', end='!\n')
3、练习
3.1 在Python交互环境中查看下面的代码结果,并将内容翻译成中文
import this
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
结果如下:
3.2 在python中使用turtle绘制矩形
import turtle
turtle.pensize(4)
turtle.pencolor('red')
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.mainloop()
结果如下:
3.3 在python中使用turtle绘制正六边形
import turtle
turtle.pensize(8)
turtle.pencolor('green')
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.mainloop()
结果如下所示:
2019-5-9 1:19:10