ipython
是一个python
的交互式shell
,比默认的python shell
好用得多,支持变量自动补全,自动缩进,支持bash shell
命令,内置了许多很有用的功能和函数。学习ipython
将会让我们以一种更高的效率来使用python
。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台
IPython提供了两个主要的组件:
- 一个强大的python交互式shell
- 供Jupyter notebooks使用的一个Jupyter内核(IPython notebook)
IPython的主要功能如下:
- 运行ipython控制台
- 使用ipython作为系统shell
- 使用历史输入(history)
- Tab补全
- 使用
%run
命令运行脚本- 使用
%timeit
命令快速测量时间- 使用
%pdb
命令快速debug- 使用
pylab
进行交互计算- 使用IPython Notebook
安装IPython
ipython支持Python2.7版本或者3.3以上的版本,我用的是windows下的python 3.8.2版本。
安装ipython很简单,可以直接使用pip管理工具即可:
C:\Users\Admin>pip3 install ipython
下载太慢可以使用国内镜像:
C:\Users\Admin>pip3 install -i https://pypi.douban.com/simple ipython
查看当前库
C:\Users\Admin>pip3 list
Package Version
---------------- -------
backcall 0.1.0
colorama 0.4.3
decorator 4.4.2
ipython 7.13.0
ipython-genutils 0.2.0
jedi 0.16.0
parso 0.6.2
pickleshare 0.7.5
pip 19.2.3
prompt-toolkit 3.0.4
Pygments 2.6.1
setuptools 41.2.0
six 1.14.0
traitlets 4.3.3
wcwidth 0.1.8
WARNING: You are using pip version 19.2.3, however version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
根据提示更新下载源
C:\Users\Admin>python3 -m pip install --upgrade pip
更显失败的利用豆瓣镜像源更新
C:\Users\Admin>python -m pip install --upgrade pip -i https://pypi.douban.com/simple
交互式使用IPython
IPython支持所有python的标准输入输出,也就是我们在IDLE中或者Python shell中能用的,在IPython中都能够使用,唯一的不同之处使ipython会使用In [x]
和Out [x]
表示输入输出,并表示出相应的序号
#在cmd窗口输出ipython即可
C:\Users\Admin>ipython
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: print('hello python!')
hello python!
#退出
In [2]: exit
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍
简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释
组成部分
1、网页应用
网页应用即基于网页形式的、结合了编写说明文档、数学公式、交互计算和其他富媒体形式的工具。简言之,网页应用是可以实现各种功能的工具
2、文档
即Jupyter Notebook中所有交互计算、编写说明文档、数学公式、图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。
这些文档是保存为后缀名为.ipynb
的JSON
格式文件,不仅便于版本控制,也方便与他人共享。
此外,文档还可以导出为:HTML、LaTeX、PDF等格
Jupyter Notebook的主要特点
- 编程时具有语法高亮、缩进、tab补全的功能。
- 可直接通过浏览器运行代码,同时在代码块下方展示运行结果。
- 以富媒体格式展示计算结果。富媒体格式包括:HTML,LaTeX,PNG,SVG等。
- 对代码编写说明文档或语句时,支持Markdown语法。
- 支持使用LaTeX编写数学性说明
安装Jupyter Notebook
安装前提
安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本
使用pip命令安装
C:\Users\Admin>pip3 install -i https://pypi.douban.com/simple jupyter
运行Jupyter Notebook
C:\Users\Admin>jupyter notebook
执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook
启动过程中终端显示内容如下:
[I 19:14:50.207 NotebookApp] Serving notebooks from local directory: F:\python1\1
[I 19:14:50.208 NotebookApp] The Jupyter Notebook is running at:
[I 19:14:50.208 NotebookApp] http://localhost:8888/?token=c3ac105eef676358b314723d6d56a53ca773fac409c6fac8
[I 19:14:50.208 NotebookApp] or http://127.0.0.1:8888/?token=c3ac105eef676358b314723d6d56a53ca773fac409c6fac8
[I 19:14:50.208 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 19:14:50.227 NotebookApp]
To access the notebook, open this file in a browser:
file:///C:/Users/Admin/AppData/Roaming/jupyter/runtime/nbserver-6444-open.html
Or copy and paste one of these URLs:
http://localhost:8888/?token=c3ac105eef676358b314723d6d56a53ca773fac409c6fac8
or http://127.0.0.1:8888/?token=c3ac105eef676358b314723d6d56a53ca773fac409c6fac8
注意:之后在Jupyter Notebook的所有操作,都请保持终端不要关闭,因为一旦关闭终端,就会断开与本地服务器的链接,你将无法在Jupyter Notebook中进行其他操作啦
如果你同时启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”……
启动服务器不打开浏览器
如果你只是想启动Jupyter Notebook的服务器但不打算立刻进入到主页面,那么就无需立刻启动浏览器。在终端中输入
F:\python1\1>jupyter notebook --no-browser
此时,将会在终端显示启动的服务器信息,并在服务器启动之后,显示出打开浏览器页面的链接。当你需要启动浏览器页面时,只需要复制链接,并粘贴在浏览器的地址栏中,轻按回车变转到了你的Jupyter Notebook页面
F:\python1\1>jupyter notebook --no-browser
[I 19:17:51.674 NotebookApp] Serving notebooks from local directory: F:\python1\1
[I 19:17:51.675 NotebookApp] The Jupyter Notebook is running at:
[I 19:17:51.675 NotebookApp] http://localhost:8888/?token=703a6064cab58c5fe00f63133ee3dd55573fb09cf6fae2d4
[I 19:17:51.675 NotebookApp] or http://127.0.0.1:8888/?token=703a6064cab58c5fe00f63133ee3dd55573fb09cf6fae2d4
[I 19:17:51.675 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 19:17:51.678 NotebookApp]
To access the notebook, open this file in a browser:
file:///C:/Users/Admin/AppData/Roaming/jupyter/runtime/nbserver-7204-open.html
Or copy and paste one of these URLs:
http://localhost:8888/?token=703a6064cab58c5fe00f63133ee3dd55573fb09cf6fae2d4
or http://127.0.0.1:8888/?token=703a6064cab58c5fe00f63133ee3dd55573fb09cf6fae2d4
浏览器输入:http://localhost:8888就可以访问
根据终端的提示输入token
Or copy and paste one of these URLs:
http://localhost:8888/?token=703a6064cab58c5fe00f63133ee3dd55573fb09cf6fae2d4
or http://127.0.0.1:8888/?token=703a6064cab58c5fe00f63133ee3dd55573fb09cf6fae2d4
这个目录取决于你在哪个目录下启动的
简单理解来说就是,起一个名字用等于号给它赋予一个值,这就是变量(固定不变的量叫做常量)
#定义变量
sum1 = 0 #定义变量2
sum2 = 1 #定义变量2
print(sum1) #输出定义的变量1
0
print(sum2) #输出定义的变量2
1
#也可以一次定义多个变量
a,b,c = 1,2,3
print(a)
1
print(b)
2
print(c)
3
print(a,b,c)
1 2 3
变量的用法有什么好处:
在某种程度上可以实现代码的复用
#需要很多地方都用到这个数据,而且这些数据还会存放在计算机内,占用内存
print('北京欢迎你')
print('北京欢迎你')
print('北京欢迎你')
print('北京欢迎你')
print('北京欢迎你')
print('北京欢迎你')
北京欢迎你
北京欢迎你
北京欢迎你
北京欢迎你
北京欢迎你
北京欢迎你
#定义一个变量message="北京欢迎你",message就比北京欢迎你占的字符小,占用内存也小
message = "北京欢迎你"
print(message)
print(message)
print(message)
print(message)
print(message)
print(message)
北京欢迎你
北京欢迎你
北京欢迎你
北京欢迎你
北京欢迎你
北京欢迎你
变量的命令规则:
- 只能包换字母、数字、下划线,但是不能以数字打头
- 不能包含空格,但是可以用下划线分隔其中的单词
- 不能使用Python关键字和函数的名称用作变量,比如:import、class、and、return、def、from …等等
- 变量名应该简短并且见名之意
- 慎用小写字母 i 和大写字母 O(容易和数字混淆的字母)
只能包换字母、数字、下划线,但是不能以数字打头
#错误例子
$a=89
$a
File "" , line 1
$a=89
^
SyntaxError: invalid #非法的输入
#数字开头也不行
1a=89
1a
File "" , line 1
1a=89
^
SyntaxError: invalid syntax
不能包含空格,但是可以用下划线分隔其中的单词
#包换空格示例
a b=89
a b
File "" , line 1
a b=89
^
SyntaxError: invalid syntax
#以下划线分隔
a_b=89
a_b
89
不能使用Python关键字和函数的名称用作变量
比如:import、class、and、return、def、from …等等
import = 'ere'
File "" , line 1
import = 'ere'
^
SyntaxError: invalid syntax
and = "ddd"
File "" , line 1
and = "ddd"
^
SyntaxError: invalid syntax
#只要变量名称是绿色或者是红色的就不能使用
变量名应该简短并且见名之意
num1=1
num2=2
teacher_name = "苏珊" #老师的名字
student_name = "吉米" #学生的名字
lengh_of_student = 2 #学生名字的长度
慎用小写字母 i 和大写字母 O
l=1 #小写L=数字1
O=0 #大写O=数字0
i=1 #小写I=数字1
#这些容以与数字混淆的慎用
使用常见的错误:
变量未定义就使用
print=(num)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-15-f827eafea48a> in <module>
----> 1 print=(num)
NameError: name 'num' is not defined
#变量要定义后再进行使用
1、字符串
Python中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用
字符串的表达形式
在Python中有三种表示字符串的方式,单引号、双引号、三引号
str1 = 'hello'
str2 = "world"
str3 = '''
春眠不觉晓
处处闻啼鸟
夜来风雨声
花落知多少
'''
print(str1)
print(str2)
print(str3)
hello
world
春眠不觉晓
处处闻啼鸟
夜来风雨声
花落知多少
需要注意的是,单引号和双引号的作用是一样的,可以根据习惯使用,但是定义多行文字时,必须要使用三引号
使用字符串的注意事项
- 字符串的定义方式单引号、双引号、三引号大部分情况下作用是相同的,但在特殊情况下使用也有所区别,下面是需要注意的地方
- 单引号、双引号、三引号它们是成对出现的,如以单引号开头就要以单引号结尾,不能混合使用表示字符串
- 如果字符串中单独出现单引号或双引号,可以使用另一种引号定义
- 当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义。Python中的转移字符是“\”,只要在特殊字符前面加上“\”,就可以原样输出,而不用去管定义字符串使用的是单引号还是双引号
字符串的常用方法
- 修改字符串大小写(title、upper、lower)
- 拼接字符串(+、函数str() )
- 添加空白(空格、换行符:\n、水平制表位:\t、end=’’:不进行换行直接连起来)
- 删除空白(开头:lstrip()、末尾:retrip()、两端:strip() )
修改字符串大小写
name = "ad loveLace"
print(name.title()) #首字母大写
print(name.upper()) #全部大写
print(name.lower()) #全部小写
Ad Lovelace
AD LOVELACE
ad lovelace
拼接字符串
#将name与要定义的age拼接起来
age = 18
print('我叫'+name+',今年'+str(age)+'岁')
我叫ad loveLace,今年18岁
PS:print输出的默认是字符串,而定义的age的值是数字,所以需要函数str() 将数字转化为字符串类型,不然会报错(TypeError: can only concatenate str (not "int") to str
)
添加空白
#让18岁之间有空格
age = 18
print('我叫'+name+',今年 '+str(age)+' 岁')
我叫ad loveLace,今年 18 岁
#换行符:\n
age = 18
print('我叫'+name+',\n今年 '+str(age)+' 岁')
我叫ad loveLace,
今年 18 岁
#水平制表为\t
age = 18
print('我叫\t'+name+',\n今年 '+str(age)+' 岁')
我叫 ad loveLace,
今年 18 岁
#end=''
//先来看看不是使用end=''的效果
print('我叫'+name+',')
print('今年 '+str(age)+' 岁')
我叫ad loveLace,
今年 18 岁 #输出为了两行
//使用end=''将两行连起来
print('我叫'+name+',',end='')
print('今年 '+str(age)+' 岁')
我叫ad loveLace,今年 18 岁
删除空白
比如说在登录帐户的时候,一不小心手一抖多了个空格,但是是不允许有空格的,这时候就用到了删除空白
#定义变量,值的坐中又均有空格
content = " test demon "
print(content) #没有改变的情况
print(content.lstrip()) #去掉左边的空格
print(content.rstrip()) #去掉右边的空格
print(content.strip()) #去掉两边的空格
test demon
test demon
test demon
test demon
常见的错误
单引号里面含撇号
say = 'Let'go!'
File "" , line 1
say = 'Let'go!'
^
SyntaxError: invalid syntax
如果引号里面需要用到撇号或着双引号,可以使用不用的引号引用
#双引号里套撇号
say_content = "Lest'go!"
print(say_content)
Lest'go!
#三引号里套撇号
s= '''Let'go!''' #这个就有点大材小用了,尽量别这样
print(s)
Let'go!
#单引号里套双引号
d = '"This is my book!"'
print(d)
"This is my book!"
2、数字
数字类型包括整型、浮点型、布尔型等,声明时由Python内置的基本数据类型来管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的类型,我们无需关心变量空间是什么类型,只要知道创建的变量中存放了一个数,程序只是对这个数值进行操作
num1 = 8
num2 = 0.5
print(num1+num2)
print(num1-num2)
print(num1*num2)
print(num1/num2)
print(num1%num2
8.5
7.5
4.0
16.0
0.0
注释(#号和三引号)
'''
以下代码是关于Python数据类型的演示案例
'''
#Python中的数字类型
num1 = 8
num2 = 0.5
print(num1+num2)
print(num1-num2)
print(num1*num2)
print(num1/num2)
print(num1%num2)
8.5
7.5
4.0
16.0
0.0
1、将用户的姓名存到一个变量中,并向该用户显示一条信息,显示内容为:“你好,艾瑞克,今天的Python课你学到东西了吗?”
name = "艾瑞克"
print('你好,'+name+',今天的Python课你学到东西了吗')
你好,艾瑞克,今天的Python课你学到东西了吗
2、将一个人的名字存到变量中,再以小写、大写和首字母大写的方式显示这个人的名字
noe_name = "mike"
print(noe_name.lower())
print(noe_name.upper())
print(noe_name.title())
mike
MIKE
Mike
3、按一下格式打印诗词:
《自由》
为人进出的门紧锁着;
想死的门敞开着。
有个病毒在外面高喊着:
“出来玩吧,给你自由!”
但我深深地知道……
出去了,不一定还能回来。
人的生命只有一次,
算球了,
再关十几天就自由了!
poem = '''
《自由》
为人进出的门紧锁着;
想死的门敞开着。
有个病毒在外面高喊着:
“出来玩吧,给你自由!”
但我深深地知道……
出去了,不一定还能回来。
人的生命只有一次,
算球了,
再关十几天就自由了!
'''
print(poem)
《自由》
为人进出的门紧锁着;
想死的门敞开着。
有个病毒在外面高喊着:
“出来玩吧,给你自由!”
但我深深地知道……
出去了,不一定还能回来。
人的生命只有一次,
算球了,
再关十几天就自由了