更新于2020年5月
一、程序的安装和运行
1.1 资源推荐
Python 官方中文文档:Python 3.7.3 文档
Github:Github开源Python项目
免费教程:廖雪峰的官方网站
付费课程:扇贝编程
书籍:Python编程:从入门到实践-埃里克·马瑟斯
书籍:使用Python自动执行无聊的工作-Al Sweigart
书籍:如何像计算机科学家一样思考-Peter Wentworth
书籍:艰苦学习Python
1.2 各类编程语言的区别
除Python之外,还有C、C++、Java等编程语言,各自都有适用的领域。
- 对性能要求非常高的软件,比如操作系统或者图像处理,通常会用
C
或者C++
编写 - 安卓上的APP一般都用
Java
,苹果APP一般用Object C
或者Swift
Python
通常用于数据分析、网络爬虫、人工智能,也可以用于网站或者APP的服务器端程序
Python的优点:语法简洁,既适合初学者入门,也能应用在人工智能等高端领域
(摘自扇贝编程)
1.3 安装Python
(部分转自廖雪峰老师的教程 安装Python)
在Mac上安装Python
如果你正在使用Mac,系统是OS X>=10.9,那么系统自带的Python版本是2.7。要安装最新的Python 3.7,有两个方法:
方法一:从Python官网下载Python 3.7的安装程序,双击运行并安装;
方法二:如果安装了Homebrew,直接通过命令brew install python3
安装即可。
在Linux上安装Python
如果你正在使用Linux,那我可以假定你有Linux系统管理经验,自行安装Python 3
应该没有问题,否则,请换回Windows系统。
在Windows上安装Python
Python官网地址:https://www.python.org/downloads/windows/
首先,我们根据自己系统类型(32 位或 64 位)来选择合适的版本点击下载,一般我们选择 executable installer
就行。86-64就是64位,86(不带64)就是32位
各个版本的区别是:
embeddable zip file
:嵌入式版本,可以集成到其它应用中web-based installer
:联网方式安装executable installer
:可执行文件(*.exe)方式安装
我们这里选择了Windows x86-64 executable installer
(我电脑是64位的),下载完成后双击打开,可以看到如下图所示的界面。
特别要注意勾上Add Python 3.7 to PATH
,然后点“Install Now”即可完成安装。
安装结束之后,在开始菜单栏可以看到Python的安装内容
点击IDLE(Python 3.8 64-bit)
,打开编辑器,界面长这样
1.4 安装Spyder
我个人是更喜欢Spyder
的开发环境,会比这个默认的好看方便(每个人喜好不同,不安装也无所谓)
我选择安装anaconda
,因为里面不仅带了Spyder
,还自带了Jupyter Notebook
anaconda
官网网址:https://www.anaconda.com/distribution/
安装之后,就可以看到Spyder
1.5 命令提示符
命令提示符是我们一定要知道的一个东西,因为安装库,都靠它。
先说明一点,用spyder或者默认Python,安装库的位置是不一样的。
默认Python
如果你用的是默认的Python,那么命令提示符用的是系统自带的
Win7系统:开始菜单—>附件—>命令提示符
Win10系统:开始菜单—>Windows系统—>命令提示符
或者直接搜索cmd
输入Python
,会显示你的版本号
Spyder
如果你用的是Spyder,很有可能,你在命令提示符装的库,它根本感受不到
你需要在Anaconda Prompt
里面输入
同样输入Python
,会显示你的版本号
后面安装库的时候,一定要注意这一点。如果是用Spyder,要在Anaconda Prompt
里面安装。
当然,安装的命令,是一模一样的,只是输入的地方不一样
1.6 安装Python库
Python依赖于很多库,这里的库,是根据自己需要安装的。为什么要安装库。就差不多相当于站在巨人的肩膀上吧。人家大神把很多功能写好了,我们拿过来用就行。安装的代码是 pip install 库的名称
。
pip:Python第三方库安装工具,用来在当前计算机上安装第三方库。
爬虫需要的最基础的库是requests
,那我们安装的时候,输入
pip install requests
如果你安装好这个库了,系统会提示你already satisfied
再比如,我想要一个操作PDF相关的库pdfplumber
。打开命令提示符,输入
pip install pdfplumber
Python安装库的时候是这样的
如果界面出现(红色框里的)提示,更新所有自带的库即可
输入python -m pip install --upgrade pip
最后,是不是每一个库都需要安装呢?不是的!有些库是Python自带的,比如turtle
,你不需要安装,也能直接用。学会装库之后,我们开始写代码啦~
1.7 向你的新世界说Hello
IDLE:Python集成开发环境,用来编写和调试Python代码
如果你是默认的Python,在开始菜单栏,打开IDLE
输入如下代码。Print
表示输入这行文字。注意,引号要用英文输入法,不能用中文输入法哟~
print("Hello, World!")
你在向新世界说Hello的时候,新世界也在向你说Hello呀~这是一个交互式的运行环境
- 下次开始写代码的时候,可以打开
File-New
,新建一个IDLE代码编辑器,操作更方便。右边写代码,左边出结果
IDLE快捷键:
Ctrl+N:在IDLE交互界面下,启动IDLE 编辑器
Ctrl+Q:退出IDLE 编辑器
Alt+3:在IDLE 编辑器内,注释选定区域文本
Alt+4:在IDLE 编辑器内,解除注释选定区域文本
F5:在IDLE 编辑器内,执行Python程序
如果你是Spyder界面,那就打开Spyder输入,代码都是一样哒。点绿色的箭头运行,Spyder的输出在界面的右侧
1.8 实践:画个小猪佩奇吧
把以下代码贴进去,直接运行就可以了。先不管为什么要这样写代码,咱们后面再研究。总之,Python是个好玩的东西~
import turtle as t
t.pensize(4)
t.hideturtle()
t.colormode(255)
t.color((255, 155, 192), "pink")
t.setup(840, 500)
t.speed(10)
# 鼻子
t.pu()
t.goto(-100,100)
t.pd()
t.seth(-30)
t.begin_fill()
a = 0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a+0.08
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a = a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.seth(90)
t.fd(25)
t.seth(0)
t.fd(10)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
# 头
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300, -30)
t.circle(100, -60)
t.circle(80, -100)
t.circle(150, -20)
t.circle(60, -95)
t.seth(161)
t.circle(-300, 15)
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
a = 0.4
for i in range(60):
if 0 <= i < 30 or 60 <= i <90:
a = a+0.08
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a = a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
# 耳朵
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 56)
t.end_fill()
#眼睛
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
# 腮
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
# 嘴
t.color(239, 69, 19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30, 40)
t.circle(40, 80)
# 身体
t.color("red", (255, 99, 71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100,10)
t.circle(300,30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300,30)
t.circle(100,3)
t.color((255,155,192),(255,100,100))
t.seth(-135)
t.circle(-80,63)
t.circle(-150,24)
t.end_fill()
# 手
t.color((255,155,192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300,15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20,90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300,15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20,90)
# 脚
t.pensize(10)
t.color((240,128,128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
# 尾巴
t.pensize(4)
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70, 20)
t.circle(10, 330)
t.circle(70, 30)
t.hideturtle()
t.done()
二、入门语句
本章内容运行环境:
Jupyter Notebook
关于
Jupyter Notebook
的使用,可以参考:https://www.zhihu.com/question/266988943 (由Clover提供)本单元视频链接:https://v.youku.com/v_show/id_XNDYyMTI4OTA5Mg==.html
2.1 输入输出和注释
input("你叫什么名字:") # 这时候可以输入你的名字
print("欢迎你学习Python") # 屏幕输出结果用print
#
代表注释,不参与程序执行
print
代表输出
input
代表输入
2.2 数据类型和变量
1) 变量
变量:在计算机程序中,变量不仅可以为整数或浮点数,还可以是字符串
变量命名: 只能有字母
、_
、数字
,其中数字不可以放在开头,比如3_a_b
,程序就直接报错了
变量赋值:用等号=
为变量赋值
phone_number = "我的电话是:18899998888"
在实际使用中,希望大家可以起一点有意义的变量名,比如name
、 age
这种,而不要都是a
、b
、c
、d
、e
、f
,这不仅别人看不懂你写的是什么,可能后面你自己都不记得,这个变量是干嘛的了。写代码的时候多注释,是个好习惯。
2) 数字
- int (有符号整数),比如
-3
、5
、20
- bool (布尔值),
True
或者False
- float (浮点值),比如
3.14
、0.9
- complex (复数),比如
2+8i
3) 字符串
-
引号引起来的一串字,可以是英文,也可以是数字,还可以用 emoji 表情哟。
-
引号可以是:单引号
'字符串'
,双引号"字符串"
,三引号'''字符串'''
ord()
:获取字符的整数表示chr()
:把编码转换为对应的字符
字符串的联结:+
text_1 = "今天我"
text_2 = "很开心"
full_text = text_1 + text_2
print(full_text)
# 输出:今天我很开心
如果需要将数值与字符串联结,先用str()
将将其他类型转为字符串,再将其与字符串联结。关于各种类型的相互转换,可参考【第八章 数据类型转换】
print("先挣" + str(1) + "个亿再说。")
# 输出:先挣1个亿再说。
多行字符串
- 当字符串包含多行信息,尤其文本包含大量引号的时候,我们可以使用
""" ``````"""
或者''' ``````'''
包裹字符串。 - 计算机读到第一个
"""
时,会知道在下一个"""
出现之前,被包裹的信息都是字符串。 - 这种方法可以减少错误,提高代码可读性。
Song = """
Well I wonder could it be
When I was dreaming about you baby
You were dreaming of me
"""
如果"""``````"""
之中的信息不被赋值于变量,则会被Python视作为注释。比如在代码开头,备注写代码的时间和作者。
"""
Created on Tue May 22 2019
@author: YangYang
"""
2.3 转义字符
刚刚上面提到,引号' text '
在代码,是用于表示字符串的。那假设,我需要输入一段文字,里面本来就有引号怎么办?或者我要表示换行怎么办?
这里就涉及到了转义字符,用\
来表示
\' # 表示单引号
\" # 表示双引号
\n # 表示换行符