来源:大数据DT

本文约2000字,建议阅读6分钟

数据类型是构成编程语言语法的基础。

[ 导读 ]数据类型是构成编程语言语法的基础。不同的编程语言有不同的数据类型,但都具有常用的几种数据类型。Python有几种内置的数据类型——数字、字符串、元组、列表和字典。本文将重点介绍数字和字符串。

01 数字

Python3的数字类型分为整型、浮点型、布尔型、分数类型、复数类型。使用Python编写程序时,不需要声明变量的类型。由Python内置的基本数据类型来管理变量,在程序的后台实现数值与类型的关联,以及类型转换等操作。

Python与其他高级语言定义变量的方式及内部原理有很大的不同。在C或Java中,定义一个整型的变量,可以采用如下方式表示:

int i = 1;

在Python中,定义整型变量的表达方式更简练。

i = 1

Python根据变量的值自动判断变量的类型,程序员不需要关心变量究竟是什么类型,只要知道创建的变量中存放了一个数,以后的工作只是对这个数值进行操作,Python会对这个数的生命周期负责。

更重要的一点是,C或Java只是创建了一个int型的普通变量;而Python创建的是一个整型对象,并且Python自动完成了整型对象的创建工作,不再需要通过构造函数创建。Python内部没有普通类型,任何类型都是对象。如果C或Java需要修改变量i的值,只要重新赋值即可;而Python并不能修改对象i的值。例如:

#下面的两个i并不是同一个对象i = 1print(id(i))i = 2print (id(i))

如果需要查看变量的类型,可以使用Python定义的type类。type是__builtin__模块的一个类,该类能返回变量的类型或创建一个新的类型。__builtin__模块是Python的内联模块,内联模块不需要import语句,由Python解释器自动导入。后面还会接触到更多内联模块的类和函数。

下面这段代码返回了各种变量的类型。

#整型i = 1print( type(i))#长整型l = 999999999999999999990       # Python何时将int转为float跟操作系统位数相关print type(l)#浮点型f = 1.2 print( type(f))#布尔型b = Trueprint (type(b))

代码说明:

  • 第3行代码输出结果:<class'int'>

  • 第6行代码输出结果:<class'int'>

  • 第9行代码输出结果:<class'float'>

  • 第12行代码输出结果:<class'bool'>

用Python来进行科学计算也很方便,因为Python内置了复数类型。Java、C#等高级语言则没有提供复数类型。

#复数类型c = 7 + 8jprint (type(c))

第3行代码输出结果:<class'complex'>

注意:复数类型的写法与数学中的写法相同,如果写为c=7+8i,Python不能识别其中的“i”,将提示语法错误。

02 字符串

在Python中有3种表示字符串的方式——单引号、双引号、三引号。单引号和双引号的作用是一样的,对于不同的程序员可以根据自己的习惯使用单引号或双引号。PHP程序员可能更习惯使用单引号表示字符串,C、Java程序员则习惯使用双引号表示字符串。下面这段代码中单引号和双引号的使用是等价的。

# 单引号和双引号的使用是等价的str = "hello world!"                    # 定义字符串变量str并赋值print (str)str = 'hello world!'print (str)

代码说明:

第3行代码输出结果:

hello world!

第5行代码输出结果:

hello world!

三引号的用法是Python特别的语法,三引号中可以输入单引号、双引号或换行等字符。

# 三引号的用法str = '''he say "hello world!"'''print( str)

代码说明:

第3行代码的三引号中带有双引号,双引号也会被输出。输出结果:

he say "hello world!"

三引号的另一种用法是制作文档字符串。Python的每个对象都有一个属性__doc__,这个属性用于描述该对象的作用。

# 三引号制作doc文档class Hello:'''hello class'''def printHello():'''print hello world'''print ("hello world!")print( Hello.__doc__)print (Hello.printHello.__doc__)

代码说明:

  • 第2行代码定义了一个名为Hello的类。

  • 第3行是对Hello类的描述,该字符串将被存放在类的__doc__属性中。

  • 第4行代码定义了一个方法printHello()。

  • 第5行代码描述了printHello(),并把字符串存放在该函数的__doc__属性中。

  • 第6行代码输出结果:

hello world!
  • 第7行代码输出Hello的__doc__属性的内容。输出结果:

hello class
  • 第8行代码输出printHello()的__doc__属性的内容。输出结果:

print hello world

如果要输出含有特殊字符(单引号、双引号等)的字符串,需要使用转义字符。Python中转义字符为“\”,和C、Java中的转义字符相同。转义操作只要在特殊字符的前面加上“\”即可。下面这段代码说明了特殊字符的转义用法。

# 转义字符str = 'he say:\'hello world!\''print (str)

代码说明:

第2行代码中的单引号是特殊字符,需要在“'”前加上转义字符。第3行代码的输出结果:

he say:'hello world!'

使用双引号或三引号可以直接输出含有特殊字符的字符串,不需要使用转义字符。

# 直接输出特殊字符str = "he say:'hello world!'"print (str)str = '''he say:'hello world!' '''print (str)

代码说明:

  • 第2行代码中使用了双引号表示字符串变量str,因此Python能够识别出双引号内部的单引号只是作为输出的字符。

  • 第3行代码的输出结果:

he say:'hello world!'
  • 第4行代码使用三引号表示字符串变量str,注意最后一个单引号后面留有一个空格,这个空格是为了让Python识别出三引号留下的。如果不留下这个空格,4个单引号连在一起,Python解释器不能正确识别三引号。提示如下错误:

SyntaxError: EOL while scanning single-quoted string
  • 第5行代码的输出结果:

he say:'hello world!'

注意:输出的字符串中含有单引号,使用双引号表示字符串即可。相反,输出的字符串中含有双引号时,可使用单引号表示字符串。

关于作者:黄传禄,高级讲师、管理软件开发工程师、数据库库系统工程师、信息系统管理工程师。有10多年的一线教学经验和高端培训经验,出版多部技术专著,获得多个软件著作权。

本文摘编自《零基础学Python》(第2版),经出版方授权发布。

编辑:黄继彦

零基础学Python:一文看懂数字和字符串相关推荐

  1. 0基础学python看什么书-零基础学python编程需要看什么书?

    原标题:零基础学python编程需要看什么书? 随着互联网迅速发展,python也呈现出水涨船高的态势.近年来,python在编程语言中一直名列前茅.编程初学者纷纷选择Python作为第一语言.Pyt ...

  2. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  3. 零基础学python编程思维---Task2 数学运算、字符串和文本、列表

    Task2 数学运算.字符串和文本.列表 一.基础部分 1.实现第一行代码和认识注释 print('hello world') 注释是由# 加相关备注,其目的就是其他开发者能够轻松的了解代码,注释不影 ...

  4. 零基础学python免费网课-零基础学Python量化投资,超值线上课程反复回看

    原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...

  5. python线上课程-零基础学Python量化投资,超值线上课程反复回看

    原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...

  6. 零基础学python看什么书-零基础学python推荐几本python学习的书籍

    原标题:零基础学python推荐几本python学习的书籍 无论是否已经学习了一些其他的编程语言,在开始学习Python时,都应该先从Python的基本概念学起,这样在之后的编程实战中就能尽量减少因为 ...

  7. python一个月能挣多少钱-零基础学python,我可以让你一个月上手做项目!

    今天达内python培训想要跟所有零基础学习python的同学分享一些神操作,这些操作可以让你在一个月上手做项目,我准备好了,你呢? 为什么你的Python学习效率如此之低?学了3个月还不会做项目做爬 ...

  8. python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?

    转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...

  9. python 智能造句_[零基础学Python]正规地说一句话

    小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子 ...

最新文章

  1. 模型部署神器:高中生也能读懂的Docker入门教程
  2. BT:胞外酶-化腐朽为神奇的催化剂
  3. 获取url后的指定参数
  4. 获得北大新材料学院夏令营offer的艰险历程(附面试答辩PPT)
  5. 畅享10e会有鸿蒙吗,功能虽小作用很大 华为畅享10e隐藏功能大揭秘
  6. RocketMQ消费者是如何获取消息的?转疯了!
  7. C语言字符输出格式化
  8. 最强编程大法,太强了!
  9. 需求跟踪矩阵模板_大连电视台采用无跟踪虚拟技术升级多套节目
  10. shell脚本实现FTP自动上传文件
  11. 拓端tecdat|MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
  12. 把C#逻辑处理程序搬移至SQL存储过程中去
  13. python爬取网易云音乐评论并进行情感分析_使用python3爬取网易云音乐的评论
  14. Win10任务栏图标变成空白方块解决办法
  15. 股票的最新和历史股息收益率查询(1)
  16. Oracle 11g RAC 修改服务器各类ip地址【转载】
  17. 虚拟机 安装 CUDA 可行性说明
  18. Java 中 switch 的用法
  19. Ubuntu Linux 系统安装、分区规划
  20. 草图大师SketchUp绘图-定制亚克力外壳教程

热门文章

  1. paip.无线路由器的无线接入WAN方式WDS设置大法
  2. Java集合框架的知识总结(1)
  3. myecplise 添加svn插件
  4. string字符串转换为array(互换)
  5. activemq ObjectMessage 不鼓励使用,有安全隐患
  6. php中使用Curl、socket、file_get_contents三种方法POST提交数据
  7. Codeforces Round #181 (Div. 2) C. Beautiful Numbers 排列组合 暴力
  8. Jquery v1.3.2 与v1.4.2在andSelf()函数方面的区别
  9. python编写安装脚本_Python-将脚本安装到系统
  10. Linux学习(十二)---RPM和YUM