上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出

这节我们来讲Python的数据类型与变量的操作

Python的交互器

在讲这个之前,我要先讲一下python的交互器,之后讲解代码(除了做简单项目)都在交互器上进行,这样可能比较直接一些,有利于刚接触python的人理解代码

python在命令行自带一个交互器,我们可以直接通过输入python进入python的交互器

但是他的功能并不是很齐全,比如代码着色,和变量的提示,以及操作shell命令的功能都没有

所以我在这推荐一款更强大的Python“交互器Shell”,IPython

IPython 是一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。

例如可以直接在ipython中直接使用Linux命令,如 ls  命令查看文件夹下的文件

安装ipython只需要执行以下命令即可

pip install ipython

 使用ipython只需要输入ipython即可

Python中操作数字

在交互器中,Python语言可以和自然语言一样处理数学的计算,例如

In [1]: 4+4
Out[1]: 8 In [2]: 100 - 6*3
Out[2]: 82 In [3]: (100 - 5*6) / 10
Out[3]: 7.0 In [4]: 10 / 3
Out[4]: 3.3333333333333335

  注意在Python中进行除法时只返回浮点数,也就是带小数点的数

整型 int

像4, 45, 255, 2455这些都是整型数字

浮点数 float

像5.0,3.1415,5.733都是浮点数

前面讲了进行除法时使用" / "只会返回一个浮点数

如果你想返回一个整数,那么你就可以使用" // "操作符

In [5]: 20 / 3
Out[5]: 6.666666666666667 In [6]: 20 // 3
Out[6]: 6

取余操作符" % "

例如

In [8]: 30 % 4    #30取4的余数
Out[8]: 2 In [9]: 4 * 7 + 2
Out[9]: 30

  

次方操作符 " ** "

例如

In [10]: 4 ** 2    #4的二次方
Out[10]: 16 In [11]: 2 * 4 #2的四次方
Out[11]: 8

  

注意:进行负数的次方运算时最好把负数加上括号

In [27]: -2**4
Out[27]: -16 In [28]: (-2)**4
Out[28]: 16

  

赋值符号 " = "

把一个数值赋给一个变量

例如

In [14]: height = 12.5    #长

In [15]: width = 5    #宽

In [16]: area = height * width  #面积

In [17]: print(area)
62.5

  

需要注意的是一个变量必须要在使用时对其赋初值定义


混合数据类型的计算

在进行混合类型的计算时,Python的解释器总是会在整数与浮点数的计算中返回一份浮点数

In [19]: 7 * 8 - 2.00
Out[19]: 54.0

  

操作浮点数的精度 "round"

round()方法需要传入两个参数,第一个是要操作的数字,第二个是浮点数的精度

例如

In [25]: PAI = 3.1415926535 

In [26]: round(PAI, 2)
Out[26]: 3.14

  

Python中操作字符串(string)

在Python中,字符串是最常用的数据类型,当然数值也不例外,

申明一个字符串可以用 '  ' 和 ''  ''

在输出单引号和双引号时我们可以使用转义符号"  \  "

例如

In [29]: 'hello world'
Out[29]: 'hello world' In [30]: "hello world"
Out[30]: 'hello world' In [31]: " PHP是世界上\"最好\"的语言 "
Out[31]: ' PHP是世界上"最好"的语言 '

  

在这里我们稍微扩展以下,常见的转义字符

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

注意:python的print()方法是默认换行输出的,只有使用输出方法时,\n才会生效,例如

In [4]: talk = "你好\nPython"

In [5]: talk
Out[5]: '你好\nPython' In [6]: print(talk)
你好
Python

  

当然如果你不这么麻烦,想直接输入一段话,不考虑转义,这是你就可以使用原始字符串,把要输出的字符串加上引号,然后在前面加上 r 即可

例如

输出一段路径时

In [7]: print("D:\notepad++\bin")
D:
otepad+in In [8]: print(r"D:\notepad++\bin")
D:\notepad++\bin

  

当然除了上面的方法,还有一个就是用python的格式化输出

格式化输出 '''   ....   '''

如果想要格式化输出一行或多行文本时,就可以用 三引号 来输出

例如输出一个人的基本信息

In [9]: info = ''' name: %s   age: %d   '''%("susmote",18)

In [10]: print(info)
name: susmote age: 18

  

多行输出时

In [12]: print('''\
...: name : %s
...: age : %d
...: '''%("susmote",18) )
name : susmote
age : 18

  

字符串的连接输出

python作为一门弱类型语言,你可以花式操作字符串

例如要重复输出一段字符串时,其他语言只能通过循环去完成,而python除了循环,你还可以对他进行数学操作,例如

In [15]: 'h' + 'e' + 2*'l' + 'o'
Out[15]: 'hello'

  

当然你也可以不用加号

In [19]: 'h' 'e' +2*'l'+ 'o'
Out[19]: 'hello'

  

注意,不能把一个变量跟字符串直接相连(不加“ + ”号)

字符串索引切片

字符串,通俗来讲也就用字符连接成的串,那么我们怎么能够获取其中包含的字符呢,这时我们就要用到索引(index)了,只需要在字符串后面加'' [ index ] '',index代表你要获取的字符顺序

注意索引都是从0开始的,这个目前市场上主流语言都适用

例如

In [30]: name = "susmote"

In [31]: name[0]
Out[31]: 's' In [33]: name[1]
Out[33]: 'u'

  

除了用正序索引,我们也可以使用倒序索引,用" - "开始

In [34]: name[-1]  相当于name[6]
Out[34]: 'e' In [35]: name[-2]  相当于name[5]
Out[35]: 't'

  

字符串的切片

用上面的方法我们每次最多也只能获取一个字符,但是如果我们想获取多个字符该怎么办呢,这时就要用到切片了

切片操作,只需要在字符串后加   [ index1 : index2 ],注意两个index之间用" : "(分号)隔开,index1代表开始的字符,index2代表结束的字符

注意切片是 包头不包尾的

例如以下例子

In [43]: name = 'susmote'

In [44]: name[0:1]
Out[44]: 's' In [45]: name[0:2]
Out[45]: 'su' In [46]: name[0:6]
Out[46]: 'susmot' In [47]: name[0:7]
Out[47]: 'susmote'

  

也可以不加索引(开始的索引和结束的索引),默认index1(开始字符的索引)是0,index2(结束字符的索引)是最后的字符索引加1

例如

In [49]: name[:]
Out[49]: 'susmote' In [50]: name[0:]
Out[50]: 'susmote' In [51]: name[:7]
Out[51]: 'susmote'

  

切片也可以用" - "  倒序索引

但是切片是按照正序来操作的,所以针对复杂的切片还是要仔细分析索引

In [72]: name[-1:]
Out[72]: 'e' In [73]: name[:-1]
Out[73]: 'susmot' In [74]: name[-7:-1]
Out[74]: 'susmot'

  

索引的结构如下

+---+---+---+---+---+---+---+
| s | u | s | m | o | t | e |
+---+---+---+---+---+---+---+
 0   1  2  3  4   5 6
-6 -5 -4 -3 -2 -1

  

如果开始字符的索引超出了字符的长度,那么什么都不会输出

如果结束字符的索引超出了字符的长度,那么只会输出开始的字符到整个字符串的最后一个字符索引

In [75]: name[40:]
Out[75]: '' In [76]: name[3:40]
Out[76]: 'mote'

  

注意字符串类型是不可以被改变的,你不能对索引对象和切片对象进行赋值

获取字符串的长度

获取的字符串的长度我们可以通过 len() 方法来获得

In [79]: well = "susmote very smart"

In [80]: len(well)
Out[80]: 18

  

数值和字符串简单的我们就讲到这里,下一节在介绍python其他的数据类型

04_Python的数据类型1数值和字符串_Python编程之路的更多相关文章

  1. 03-第一个脚本程序以及输入输出_Python编程之路

    上节课已经教大家安装了Python的解释器,那么这节课我们就可以正式来写代码了 说明:在下面的代码演示中,我将大部分使用python交互器演示代码的输入输出,注意">>>& ...

  2. 06_Python的数据类型3元组,集合和字典_Python编程之路

    上一节跟大家讲了Python的列表,当然不是完整的讲完,后续我们还会提到,这一节我们还是来讲Python的数据类型 首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面 ...

  3. 01-Python的介绍_Python编程之路

    首先用一句业内非常出名的话来介绍Python "人生哭短,我用Python" 这也是Python宣传时经常说的一句话 从这句话中,可以非常清楚Python他到底优点在哪里,为什么要 ...

  4. 09_Python定义方法_Python编程之路

    有关Python判断与循环的内容我们上几节已经跟大家一起学习了,这一节我们主要针对def 做一个讲解 def 定义一个方法 在项目编程中,我们往往要做很多重复的事,比如一个排序的功能(当然Python ...

  5. 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路

    Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...

  6. 02-Python的下载和安装_Python编程之路

    原文发布在特克斯博客www.susmote.com 之前给大家讲了关于python的背景知识,还有Python的优点和缺点,相信通过之前的介绍很多人已经清楚自己到底要不要选择学习Python,如果已经 ...

  7. 10_Python函数方法加深_Python编程之路

    上节课已经简单的跟大家讲了如何定义一个方法,但是并没有深入去讲,这一节我们继续来学习定义方法中需要注意的几点 默认参数 前面我们讲到定义一个方法时是可以传递参数的,除了这个功能,实际上python在定 ...

  8. 11_Python的列表推导式_Python编程之路

    上一节我们结束了有关python的方法相关内容 这一节我们先来学习python的列表推导式 之前跟大家说过range方法的使用,在这里我就不做过多的解释了,如忘记了,请翻阅之前的介绍 列表推导式,是P ...

  9. 12_Python的(匿名函数)Lambda表达式_Python编程之路

    Python作为一门高级语言,与很多编程语言一样都具有匿名函数这一特征 匿名函数,也就Lambda表达式,通俗来讲就是不用命名的方法,直接定义,直接用即可 创建匿名函数需要用到Lambda关键字,下面 ...

随机推荐

  1. Request对象实现请求转发区别

    servlet请求转发与重定向的区别: request.setAttribute("test","hello"); request.getRequestDisp ...

  2. RAM

    1.     前记 我们知道,不同的计算机结构对RAM 的使用方式是有区别的,典型的计算机结构有两个,冯诺依曼结构和哈佛结构,而两大阵营的领军人物就是传说中的Intel X86系列的8086和51单片 ...

  3. webpack3配置字体图标和打包相关问题

    webpak配置字体图标有两种方式 一.将字体图标和css打包到同一个文件中. 1.首先需要安装url-loader npm install --save-dev url-loader 2.相关配置如 ...

  4. BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案)

    BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案) 题意 : 给你一个长为\(R\)宽为\(C\)的矩阵,第\(i\)行\(j\)列的数为\(P_{i,j}\). 有\(m\)次 ...

  5. iOS开发——下载器的功能基本实现

    今天,做了一个下载器的Demo,即从本地配置的Apache服务器上,下载指定的文件.这次,我们下载服务器根目录下的html.mp4文件. 按照惯例,我们先创建一个URL对象和请求. NSURL *ur ...

  6. springboot dubbo filter之依赖注入null

    @Autowiredprivate ICallerRepository callerRepository;...用dubbo提供的ServiceBean即可获取bean,因为该类已经实现了Applic ...

  7. SEO优化策略

    原文:http://www.upwqy.com/details/186.html 1 首先了解seo是什么 SEO是英文Search Engine Optimization的缩写,中文译为" ...

  8. RedHat 7.3 更新yum源

    title: RedHat 7.3 更新yum源 time: 2018.3.15 查看所有yum包 [root@bogon ~]# rpm -qa | grep yum yum-rhn-plugin- ...

  9. jq事件

    1,ready:当DOM载入就绪可以查询及操纵时绑定一个要执行的函数,在使用之前必须确保body元素的onload事件,,没有注册函数,否则不会触发ready函数. $(document).ready ...

  10. 深入理解Java虚拟机到底是什么

    摘自:http://blog.csdn.net/zhangjg_blog/article/details/20380971 什么是Java虚拟机 我们都知道Java程序必须在虚拟机上运行.那么虚拟机到 ...