Python的变量和简单的数据类型

故事扮演 提交于 2020-03-12 07:10:33

IPython介绍

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官方介绍

简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释

组成部分

1、网页应用

网页应用即基于网页形式的、结合了编写说明文档、数学公式、交互计算和其他富媒体形式的工具。简言之,网页应用是可以实现各种功能的工具

2、文档

即Jupyter Notebook中所有交互计算、编写说明文档、数学公式、图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。

这些文档是保存为后缀名为.ipynbJSON格式文件,不仅便于版本控制,也方便与他人共享。

此外,文档还可以导出为: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 "<ipython-input-6-cf2d0c5b3bb7>", line 1
    $a=89
    ^
SyntaxError: invalid  #非法的输入
#数字开头也不行
1a=89
1a
  File "<ipython-input-7-e78e6d530639>", line 1
    1a=89
     ^
SyntaxError: invalid syntax

不能包含空格,但是可以用下划线分隔其中的单词

#包换空格示例
a b=89
a b
  File "<ipython-input-9-1917d5b6e6ca>", line 1
    a b=89
      ^
SyntaxError: invalid syntax
#以下划线分隔
a_b=89
a_b
89

不能使用Python关键字和函数的名称用作变量

比如:import、class、and、return、def、from …等等

import = 'ere'
  File "<ipython-input-11-58ece2b8d285>", line 1
    import = 'ere'
           ^
SyntaxError: invalid syntax
and = "ddd"
  File "<ipython-input-13-9498d9360549>", 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
#变量要定义后再进行使用

Python常用的数据类型

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 "<ipython-input-28-5ccc2ed9867a>", 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)
《自由》 
为人进出的门紧锁着;
想死的门敞开着。
有个病毒在外面高喊着:
“出来玩吧,给你自由!”
但我深深地知道……
出去了,不一定还能回来。
人的生命只有一次,
算球了,
再关十几天就自由了
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!