•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

Python数据类型及运算符的细致总结(代码示例)【Python教程】,Python

摘要: 本篇文章给人人带来的内容是关于Python数据类型及运算符的细致总结(代码示例),有一定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。前文报告了Python的输入输出以及变量的相干知...
本篇文章给人人带来的内容是关于Python数据类型及运算符的细致总结(代码示例),有一定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

前文报告了Python的输入输出以及变量的相干知识点,本节将讨论Python的数据类型以及数据之间的运算体式格局!

一、Python数据类型

上一节弄清了变量,实在变量所指向的值是有自身奇特的数据类型的,这些数据类型能够代表差别的数据,在Python中,主要有以下几种数据类型:

整形(int)

在盘算机中,整数的位数现实上是有局限的,并没有我们设想的那样具有无穷的位数,而且,在差别的机械上整数的位数能够差别,比方:

32位体系:整数的位数就是32位,寻址局限为:-231 ~ 231-1 ,即-2147483648 ~ 2147483647

64位体系:整数的位数就是64位,寻址局限为:-263 ~ 263-1 ,即-9223372036854775808 ~ 9223372036854775807

长整形(long)

在Python中,长整形整数并没有指定位数,也就是说,长整形整数能够无穷大,然则由于机械自身的限定,每每并不能无穷大,到一定局限也就不可了。

浮点型(float)

上面两种数据类型都是整数,但在现实并不能够满是整数,另有小数啊,因而浮点型便应运而生,说白了浮点型就是小数,而且能够运用科学计数,在盘算机中,科学计数的倍数10用e替代,如:5.21x105 就写成 5.21e9,也能够写成521e7

复数(complex)

上面三种数据类型组合起来是实数,实在科学盘算中常常用到复数,在Python中,存在复数的数据类型,平常情势为:x+yj,式中x,y都是实数,比方:5+6j

布尔值(True、False)

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

In [77]: 5==6
Out[77]: False
In [78]: 3>2
Out[78]: True
In [79]: True == True
Out[79]: True
In [80]: True == False
Out[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 "<ipython-input-84-a2a810ee38cb>", 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]: '\ni\'m MinuteSheep,\ni said:\n"i\'m the best man in the world!"\n'

圆满处理,还记得\n是什么吗,是换行意义的啦,一样你会发明i'm变成了i\'m,这现实上是转义的显现,转义今后会讲到的啦

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

这个题目问的好!看我的诠释,有图有原形:

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

字符串另有许多要领,以后会特地有一小节细致的解说字符串的要领。

列表(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+2
Out[93]: 3

减 -

In [95]: 1-2O
ut[95]: -1

乘 *

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

除 /

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

取模 % (就是取余数)

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

取整 //

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

幂 **

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

赋值运算

简朴赋值 =

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

比较运算

测试相称 ==

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

不即是 !=

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

大于 >

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

大于即是 >=

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

小于 <

In [151]: 6<6
Out[151]: False
In [152]: 6<7
Out[152]: True

小于即是 <=

In [153]: 6<=6
Out[153]: True
In [154]: 6<=7
Out[154]: True

逻辑运算

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

In [156]: True and False
Out[156]: False
In [157]: True and True
Out[157]: True
In [158]: False and False
Out[158]: False

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

In [159]: True or True
Out[159]: True
In [160]: True or False
Out[160]: True
In [161]: False and False
Out[161]: False

布尔'非' not (取相反)

In [162]: not True
Out[162]: False
In [163]: not False
Out[163]: True

身份运算

推断两个标识符是不是援用自统一个对象 is

In [167]: a=b=3

In [168]: a is b
Out[168]: True

In [169]: a=3

In [170]: b=5

In [171]: a is b
Out[171]: False

推断两个标识符是不是援用自差别对象 is not

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

== 与 is 的区分:

看到这里,许多小伙伴已晕了,== 和 is 彷佛一样啊,看起来一样,现实上是不一样的,来看下面的这段代码:

In [180]: a = 600
In [181]: b = 600
In [182]: a == b
Out[182]: True
In [183]: a is b
Out[183]: False

实在啊,== 比较的是值,is比较的地点,让我们用 id() 这个函数检察一下变量的地点:

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

能够看到,a和b俩个变量的值虽然雷同,但地点却不一样,所以运用 == 和 is 的效果天然就不一样。那我们再来看一段代码:

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

萌新是不是是莫不着思想了,用600的时刻 is 输出False,用10的时刻怎样地点一样了啊,(快转头,有鬼~)实在啊,Python有一个叫做小整数对象池的东西,只如果[-5, 256]之间的整数都邑运用统一份地点,这下萌新邃晓了哇。

位运算

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

按位与 &

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

按位或 |

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

按位异或 ^

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

按位取反 ~

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

左移 <<

In [213]: a = 15   # 15 = 0000 1111
In [214]: c = a<<2 # 60 = 0011 1100
In [215]: c
Out[215]: 60#左移背面要加位数

右移 >>

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

Python运算符优先级(从高究竟顺次分列)

**                 # 指数 (最高优先级)
~ + -              # 按位翻转, 一元加号和减号 (末了两个的要领名为 +@ 和 -@)
* / % //           # 乘,除,取模和取整除
+ -                # 加法减法
>> <<              # 右移,左移运算符
&                  # 位 'AND'
^ |                # 位运算符
<= < > >=          # 比较运算符
<> == !=           # 即是运算符
= %= /= //= -= += *= **=    # 赋值运算符
is is not          # 身份运算符
in not in          # 成员运算符
not and or         # 逻辑运算符

以上就是Python数据类型及运算符的细致总结(代码示例)的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号