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

上一节我们通过一个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编程之路的更多相关文章
- 03-第一个脚本程序以及输入输出_Python编程之路
上节课已经教大家安装了Python的解释器,那么这节课我们就可以正式来写代码了 说明:在下面的代码演示中,我将大部分使用python交互器演示代码的输入输出,注意">>>& ...
- 06_Python的数据类型3元组,集合和字典_Python编程之路
上一节跟大家讲了Python的列表,当然不是完整的讲完,后续我们还会提到,这一节我们还是来讲Python的数据类型 首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面 ...
- 01-Python的介绍_Python编程之路
首先用一句业内非常出名的话来介绍Python "人生哭短,我用Python" 这也是Python宣传时经常说的一句话 从这句话中,可以非常清楚Python他到底优点在哪里,为什么要 ...
- 09_Python定义方法_Python编程之路
有关Python判断与循环的内容我们上几节已经跟大家一起学习了,这一节我们主要针对def 做一个讲解 def 定义一个方法 在项目编程中,我们往往要做很多重复的事,比如一个排序的功能(当然Python ...
- 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路
Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...
- 02-Python的下载和安装_Python编程之路
原文发布在特克斯博客www.susmote.com 之前给大家讲了关于python的背景知识,还有Python的优点和缺点,相信通过之前的介绍很多人已经清楚自己到底要不要选择学习Python,如果已经 ...
- 10_Python函数方法加深_Python编程之路
上节课已经简单的跟大家讲了如何定义一个方法,但是并没有深入去讲,这一节我们继续来学习定义方法中需要注意的几点 默认参数 前面我们讲到定义一个方法时是可以传递参数的,除了这个功能,实际上python在定 ...
- 11_Python的列表推导式_Python编程之路
上一节我们结束了有关python的方法相关内容 这一节我们先来学习python的列表推导式 之前跟大家说过range方法的使用,在这里我就不做过多的解释了,如忘记了,请翻阅之前的介绍 列表推导式,是P ...
- 12_Python的(匿名函数)Lambda表达式_Python编程之路
Python作为一门高级语言,与很多编程语言一样都具有匿名函数这一特征 匿名函数,也就Lambda表达式,通俗来讲就是不用命名的方法,直接定义,直接用即可 创建匿名函数需要用到Lambda关键字,下面 ...
随机推荐
- SQL错误:ORA-12899
1.错误描述 SQL错误:ORA-12899:列"USER"."T_USER_TAB"."USER_ID"的值太大(实际值:4,最大值:2) ...
- Java中使用UDP实现简单的聊天功能
通过DatagramSocket类来实现.此类表示用来发送和接收数据报包的套接字. 发送端代码如下: import java.io.IOException; import java.net.*; im ...
- 【小白学爬虫连载(10)】–如何用Python实现模拟登陆网站
Python如何实现模拟登陆爬取Python实现模拟登陆的方式简单来说有三种:一.采用post请求提交表单的方式实现.二.利用浏览器登陆网站记录登陆成功后的cookies,采用get的请求方式,传入c ...
- vue-过滤器filter
vue-过滤器filter vue的过滤器一般在JavaScript 表达式的尾部,由"|"符号指示: 过滤器可以让我们的代码更加优美,一般可以用在时间格式化,首字母大写等等. 例 ...
- wso2ESB - 在eclipse中启用调试模式
最近在使用wso2ESB,记录一下使用过程中碰到的坑,先写一篇调试的(前面的工具安装就不介绍了,既然想用调试了说明你已经看过一部分文档了),以后可能会介绍其他功能的使用. 在wso2 ei的文档中,介 ...
- SpringMVC常用注解整理
一.组件型注解: @Component 在类定义之前添加@Component注解,他会被spring容器识别,并转为bean. @Repository 对Dao实现类进行注解 (特殊的@Compone ...
- MySQL增量订阅&消费组件Canal POC
POC的目的:1.与MYSQL的对接方式,配置文档2.订阅的延迟3.订阅后宕机消息会不会丢失4.能不能从指定的点开始重新订阅5.高并发写入的时候,日志的顺序是否还能保持,不考虑消费的情况订阅是否会延迟 ...
- java ---日期的格式化
import java.util.Date; import java.util.Scanner; import java.text.SimpleDateFormat; import java.util ...
- 记一次线上Curator使用过程JVM栈溢出解决
为了同学们看起来一目了,特按如下思路进行讲解. 1.出现的场景 2.分析及解决的过程 3.总结 最近公司要使用zookeeper做配置管理(后面简称ZK),然后自己就提前用虚拟机进行 ...
- adobe media encoder cc 2015在win10中打开崩溃的解决办法(该方法同样适用于adobe其他产品)
今天就给大家讲讲adobe media encoder cc 2015启动的时候崩溃的问题,先来看看现象.就是这样了,然后我在网上找了很多办法,有的方法已经过时了,也或者因为现在新版本的adobe m ...