Python数据类型及运算符的详细总结(代码示例)

本篇文章给大家带来的内容是关于python数据类型及运算符的详细总结(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前文讲述了Python的输入输出以及变量的相关知识点,本节将探讨Python的数据类型以及数据之间的运算方式!

一、Python数据类型

上一节弄清了变量,其实变量所指向的值是有自己独特的数据类型的,这些数据类型可能代表不同的数据,在Python中,主要有以下几种数据类型:

整形(int)

在计算机中,整数的位数其实是有范围的,并没有我们想象的那样拥有无限的位数,而且,在不同的机器上整数的位数可能不同,例如:

32位系统:整数的位数就是32位,寻址范围为:-231  ~  231-1 ,即-2147483648 ~ 2147483647

立即学习“Python免费学习笔记(深入)”;

64位系统:整数的位数就是64位,寻址范围为:-263 ~ 263-1 ,即-9223372036854775808 ~ 9223372036854775807

长整形(long)

在Python中,长整形整数并没有指定位数,也就是说,长整形整数可以无限大,但是由于机器本身的限制,往往并不能无限大,到一定范围也就不行了。

浮点型(float)

上面两种数据类型都是整数,但在实际并不可能全是整数,还有小数啊,于是浮点型便应运而生,说白了浮点型就是小数,并且可以使用科学计数,在计算机中,科学计数的倍数10用e代替,如:5.21×105 就写成 5.21e9,也可以写成521e7

复数(complex)

上面三种数据类型组合起来是实数,其实科学计算中常常用到复数,在Python中,存在复数的数据类型,一般形式为:x+yj,式中x,y都是实数,例如:5+6j

布尔值(True、False)

布尔值就俩:真、假,Python中用True、False表示,一定要注意首字母大写,Python中是区分大小写的,一定要注意。

In [77]: 5==6Out[77]: FalseIn [78]: 3>2Out[78]: TrueIn [79]: True == TrueOut[79]: TrueIn [80]: True == FalseOut[80]: False

登录后复制

空值(None)

空值就一个:None,这个空值是很有趣的,None不可以理解为0,因为0不是空值,就好像温度是0摄氏度一样,0摄氏度是有温度的( ̄▽ ̄)”

字符串(str)

字符串可能是编写Python中用到的最多的数据类型,只要是用引号引起来的就是字符串。Python中是不区分单引号、双引号和三引号的,他们是相同的:

In [81]: 'Hello,world!'Out[81]: 'Hello,world!'In [82]: "Hello,world!"Out[82]: 'Hello,world!'In [83]: '''Hello,world'''Out[83]: 'Hello,world'

登录后复制

肯定有萌新会问,搞这么多幺蛾子干啥,统一用一个不就完了,我就默默笑笑不说话:

In [84]: 'i'm MinuteSheep'  File "", line 1    'i'm MinuteSheep'       ^SyntaxError: invalid syntax

登录后复制

看!报错了竟然,为什么呢?因为Python会自动匹配最近的符号与之闭合,所以就会出现上面的情况,做如下修改:

In [85]: "i'm MinuteSheep"Out[85]: "i'm MinuteSheep"

登录后复制

(萌新:你个糟老头子坏得很╰(‵□′)╯)

同样的,三引号用于多行,或者内容符号混乱的情况:

In [87]: '''i'm MinuteSheep,i said:"i'm the best man in the world!"'''Out[87]: 'i'm MinuteSheep,i said:"i'm the best man in the world!"'In [86]: '''    ...: i'm MinuteSheep,    ...: i said:    ...: "i'm the best man in the world!"    ...: '''Out[86]: 'i'm MinuteSheep,i said:"i'm the best man in the world!"'

登录后复制

完美解决,还记得是什么吗,是换行意思的啦,同样你会发现i’m变成了i’m,这其实是转义的显示,转义以后会讲到的啦

又有萌新出来作妖了,你上一节不是说三引号是多行注释吗,这一节怎么变成了字符串啦?

这个问题问的好!看我的解释,有图有真相:

Python数据类型及运算符的详细总结(代码示例)

直接三引号内容,是注释,只要将三引号内容赋给变量,就是字符串

字符串还有很多方法,之后会专门有一小节详细的讲解字符串的方法。

列表(list)

对于列表,萌新可能会很陌生,你可以暂时把它理解为一维数组,列表的在Python中的使用次数也是相当多的,是除字符串以外必须掌握的一种数据类型。来看看列表长啥样:

In [88]: ['MinuteSheep', 'LiMing', '123', 123]Out[88]: ['MinuteSheep', 'LiMing', '123', 123]

登录后复制

可以看到,被一对方括号括起来的数据就是列表,刘表里面可以又其他数据类型,上面的列表包括:字符串和整型。当然,列表可以包含列表,称为列表的嵌套:

In [89]: ['MinuteSheep', ['LiMing', 123]]Out[89]: ['MinuteSheep', ['LiMing', 123]]

登录后复制

关于列表,还有好多具体的方法,这里不一一介绍,之后也会有专门的一小节讲解列表方法。

元组(tuple)

元组可能就更陌生了,元组其实是不可变列表,列表用一队方括号括起来,元组则用一对圆括号括起来,列表是可以被操作的(比如增、删、改、查),但是元组不行,元组不可被更改,来看看元组长啥样哇:

In [90]: ('MinuteSheep','LiMing',123)Out[90]: ('MinuteSheep', 'LiMing', 123)

登录后复制

字典(dict)

字典是Python的一种非常强大的数据类型,通过键值对的形式将数据保存下来,提高了数据增、删、改、查的速度,通常作为数据存储的格式,也来看看字典长啥样哇:

In [91]: {'name': 'MinuteSheep', 'gender' : 'male', 'age': 99}Out[91]: {'age': 99, 'gender': 'male', 'name': 'MinuteSheep'}

登录后复制

可以看到,字典是用一对花括号括起来的,并且以 ‘key’ : ‘value’ 的形式存储,同样,字典里面可以包含其他数据类型,上面的字典包括:字符串、整型。当然,字典也可以嵌套:

In [92]: {'name' : 'MinuteSheep', 'age': {'young' : 15, 'old' : 99}}Out[92]: {'age': {'old': 99, 'young': 15}, 'name': 'MinuteSheep'}

登录后复制

字典也会有专门的一节去讲解它的方法。

二、Python数据运算

说完了Python的数据类型,就该数据运算了,养兵千日,用在一时嘛

算数运算

加 +

In [93]: 1+2Out[93]: 3

登录后复制

减 –

In [95]: 1-2Out[95]: -1

登录后复制

乘 *

In [96]: 1*2Out[96]: 2

登录后复制

除 /

In [97]: 5/2Out[97]: 2.5

登录后复制

取模 %  (就是取余数)

In [98]: 5%2Out[98]: 1

登录后复制

取整 //

In [99]: 5//2Out[99]: 2

登录后复制

幂 **

In [100]: 5**2Out[100]: 25

登录后复制

赋值运算

简单赋值 =

In [102]: a=5In [103]: b=6In [104]: c=a+bIn [105]: cOut[105]: 11

登录后复制

加法赋值 +=   (b+=a,相当于b=b+a)

In [106]: a=5In [107]: b=6In [108]: b+=aIn [109]: bOut[109]: 11

登录后复制

减法赋值 -=   (b-=a,相当于b=b-a)

In [111]: a=5In [112]: b=6In [113]: b-=aIn [114]: bOut[114]: 1

登录后复制

乘法赋值 *=   (b*=a,相当于b=b*a)

In [115]: a=5In [116]: b=6In [117]: b*=aIn [118]: bOut[118]: 30

登录后复制

除法赋值 /=   (b/=a,相当于b=b/a)

In [119]: a=5In [120]: b=6In [121]: b/=aIn [122]: bOut[122]: 1.2

登录后复制

取模赋值 %=   (b%=a,相当于b=b%a)

In [123]: a=5In [124]: b=6In [125]: b%=aIn [126]: bOut[126]: 1

登录后复制

取整赋值 //=   (b//=a,相当于b=b//a)

In [127]: a=5In [128]: b=6In [129]: b//=aIn [130]: bOut[130]: 1

登录后复制

幂赋值 **=   (b**=a,相当于b=b**a)

In [131]: a=5In [132]: b=6In [133]: b**=aIn [134]: bOut[134]: 7776

登录后复制

比较运算

测试相等 ==

In [136]: 1==1Out[136]: TrueIn [137]: 1==2Out[137]: False

登录后复制

不等于 !=

In [144]: 1!=1Out[144]: FalseIn [145]: 1!=2Out[145]: True

登录后复制

大于 >

In [146]: 1>1Out[146]: FalseIn [147]: 2>1Out[147]: True

登录后复制

大于等于 >=

In [149]: 1>=1Out[149]: TrueIn [150]: 2>=1Out[150]: True

登录后复制

小于

In [151]: 6

小于等于

In [153]: 6

逻辑运算

布尔'与' and   (有假为假,全真为真)

In [156]: True and FalseOut[156]: FalseIn [157]: True and TrueOut[157]: TrueIn [158]: False and FalseOut[158]: False

登录后复制

布尔'或' or   (有真为真,全假为假)

In [159]: True or TrueOut[159]: TrueIn [160]: True or FalseOut[160]: TrueIn [161]: False and FalseOut[161]: False

登录后复制

布尔'非' not   (取相反)

In [162]: not TrueOut[162]: FalseIn [163]: not FalseOut[163]: True

登录后复制

身份运算

判断两个标识符是否引用自同一个对象 is

In [167]: a=b=3In [168]: a is bOut[168]: TrueIn [169]: a=3In [170]: b=5In [171]: a is bOut[171]: False

登录后复制

判断两个标识符是否引用自不同对象 is not

In [177]: a=3In [178]: b=5In [179]: a is not bOut[179]: True

登录后复制

== 与 is 的区别:

看到这里,很多小伙伴已经晕了,== 和 is 好像一样啊,看起来一样,其实是不一样的,来看下面的这段代码:

In [180]: a = 600In [181]: b = 600In [182]: a == bOut[182]: TrueIn [183]: a is bOut[183]: False

登录后复制

其实啊,== 比较的是值,is比较的地址,让我们用 id() 这个函数查看一下变量的地址:

In [184]: id(a)Out[184]: 2155434581648In [185]: id(b)Out[185]: 2155434581904

登录后复制

可以看到,a和b俩个变量的值虽然相同,但地址却不一样,所以使用 == 和 is 的结果自然就不一样。那我们再来看一段代码:

In [187]: a = 10In [188]: b = 10In [189]: a == bOut[189]: TrueIn [190]: a is bOut[190]: TrueIn [191]: id(a)Out[191]: 1529742064In [192]: id(b)Out[192]: 1529742064

登录后复制

萌新是不是莫不着头脑了,用600的时候 is 输出False,用10的时候怎么地址一样了啊,(快回头,有鬼~)其实啊,Python有一个叫做小整数对象池的东西,只要是[-5, 256]之间的整数都会使用同一份地址,这下萌新明白了哇。

位运算

重点说明:位运算针对的是二进制数

按位与 &

In [193]: a = 15   # 15 = 0000 1111In [194]: b = 30   # 30 = 0001 1110In [195]: c = a&b  # 14 = 0000 1110In [196]: cOut[196]: 14

登录后复制

按位或 |

In [193]: a = 15   # 15 = 0000 1111In [194]: b = 30   # 30 = 0001 1110In [197]: c = a|b  # 31 = 0001 1111In [198]: cOut[198]: 31

登录后复制

按位异或 ^

In [193]: a = 15   # 15 = 0000 1111In [194]: b = 30   # 30 = 0001 1110In [200]: c = a^b  # 17 = 0001 0001In [201]: cOut[201]: 17

登录后复制

按位取反 ~

In [210]: a = 60   # 60 = 0011 1100In [211]: c = ~a  # -61 = 1100 0011In [212]: cOut[212]: -61

登录后复制

左移

In [213]: a = 15   # 15 = 0000 1111In [214]: c = a

右移 >>

In [213]: a = 15     # 15 = 0000 1111In [218]: c = a>>2    # 3 = 0000 0011 In [219]: cOut[219]: 3#右移后面要加位数

登录后复制

Python运算符优先级(从高到底依次排列)

**                 # 指数 (最高优先级)~ + -              # 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)* / % //           # 乘,除,取模和取整除+ -                # 加法减法>>  >=          # 比较运算符 == !=           # 等于运算符= %= /= //= -= += *= **=    # 赋值运算符is is not          # 身份运算符in not in          # 成员运算符not and or         # 逻辑运算符

登录后复制

以上就是Python数据类型及运算符的详细总结(代码示例)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2534096.html

(0)
上一篇 2025年3月5日 21:26:22
下一篇 2025年3月5日 21:26:31

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎么找到黑客的联系方式?

    如果你想要找到黑客的联系方式,那么你可能面临以下难题:黑客往往会隐藏他们的身份,并且他们的联系方式很难被发现。php小编草莓在这里为你提供了一份指南,旨在帮助你找到黑客的联系方式。在本指南中,我们将介绍一些常见的黑客使用的联系方式,并提供一…

    2025年3月5日
    200
  • python中的异常处理(代码示例)

    本篇文章给大家带来的内容是关于python中的异常处理(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接…

    编程技术 2025年3月5日
    100
  • Python中变量与输入输出的总结(代码示例)

    本篇文章给大家带来的内容是关于python中变量与输入输出的总结(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 学习一门编程语言,最基本的无非不过学习其变量规则、条件语句、循环语句和函数,接下来的几节将开始记录…

    2025年3月5日
    200
  • python是前端还是后端

    python属于后端开发,python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。在后端开…

    2025年3月5日
    200
  • Python在函数中使用列表作为默认参数的介绍(代码示例)

    本篇文章给大家带来的内容是关于python在函数中使用列表作为默认参数的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 本文将介绍笔者在工作中遇到的Python的一个坑,那就是使用列表作为默认参数。 我们知…

    编程技术 2025年3月5日
    200
  • django中数据库设置的详细介绍(代码示例)

    本篇文章给大家带来的内容是关于django中数据库设置的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 首先定义数据库的表名和字段 启动mysql数据库 bash mysql.server start …

    编程技术 2025年3月5日
    200
  • Python中迭代器和生成器以及列表的介绍(附代码)

    本篇文章给大家带来的内容是关于python中迭代器和生成器以及列表的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 迭代器在 Python 2.2 版本中被加入, 它为类序列对象提供了一个类序列的接口。 Py…

    编程技术 2025年3月5日
    200
  • Python编码格式的详细介绍(附示例)

    本篇文章给大家带来的内容是关于python编码格式的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 代码除了用来运行外,更多的是用来读。为了是代码的可读性更强,很多编程语言都有自己的编码规范。规范的制定是…

    编程技术 2025年3月5日
    200
  • Python中sys模块的详细介绍(代码示例)

    本篇文章给大家带来的内容是关于python中sys模块的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.modules.keys(…

    编程技术 2025年3月5日
    100
  • Python中os模块的详细介绍(附代码)

    本篇文章给大家带来的内容是关于python中os模块的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Python的标准库中的os模块包含普遍的操作系统功能。这个模块的作用主要是提供与平台无关的功能。也就…

    编程技术 2025年3月5日
    200

发表回复

登录后才能评论