欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

04_Python的数据类型1数值和字符串_Python编程之路

程序员文章站 2022-03-30 13:43:10
上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出 这节我们来讲Python的数据类型与变量的操作 Python的交互器 在讲这个之前,我要先讲一下python的交互器,之后讲解代码(除了做简单项目)都在交互器上进行,这样可能比较直接一些,有利于刚接触pytho ......

04_Python的数据类型1数值和字符串_Python编程之路

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

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

 

Python的交互器

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

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

04_Python的数据类型1数值和字符串_Python编程之路

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

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

04_Python的数据类型1数值和字符串_Python编程之路

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

04_Python的数据类型1数值和字符串_Python编程之路

例如可以直接在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其他的数据类型