您的位置:首页 > 编程语言 > Python开发

【Python学习之路】My Third journey

2017-11-11 14:19 411 查看
最近还真是够鸽的,我开始怀疑我学习的热情是不是又下降了,明明有很多空余时间,用在学习上的还真的是够少的,继续反省。。。(听说dalao们今天都去考软考了,我这个咸鱼连软考都不知道怎么考的,真的gg了,只希望朋友们和各位dalao软考顺利通过吧,不知道明年还有什么时间了。。。)

今天的是关于python运算符方面的学习,与往常一样,还是在runoob上学习的,其中差不多复习了以前的C/C++里面的一些运算符,同时,也有更多不一样的新东西,除了格式上有差距之外,还有以前没有接触过,或者间接接触过的语法(或许是被我鸽过没学的QAQ),像is身份运算符,in成员运算符,and逻辑运算符等等。里面的关于is和==之间是真的有趣,还有python的标识符地址居然是按照数值来确定的,这一点真的很有趣>_<

同样的,如果有什么想法或是想要讨论的问题,请在下面的评论栏里进行评论(虽然鸽学习时间,但绝对不鸽上网时间!orz),所以,一定会一起讨论的。以下是学习过程中的相关代码:

#python 运算符

'基本运算'
a, b = 12, 40
#加法 a加上b
print(a+b)
#减法 a减去b
print(a-b)
#乘法 a乘以b
print(a*b)
#除法 a除以b
print(a/b)
#取模 a对b取模
print(a%b)
#幂运算 a的b次方
print(a**b)
#取整除 a除以b的整数部分
print(a//b)

'比较运算符'
# == 用来判定两者是否相等,相等返回true,不相等返回false
print(a==b)
# != 与==相反,用以判定两者是否不等,相等返回false,不相等返回true
print(a!=b)
# > 用以判定左边数是否大于右边数,大于右边数返回true,小于右边数返回false
print(a>b)
# < 与>相反,用以判定左边数是否小于右边数,小于右边数返回true,大于右边数返回false
print(a<b)
# >=和<=类似>和<
print(a>=b)
print(a<=b)

'赋值运算符'
'''
与C/C++等语言类似,包含 =、+=、-=、*=、/=、%=、**=、//=
'''
c = 12
print(c)    # 给c赋值12
c += 3
print(c)    # 给c赋值c+3,即15
c -= 5
print(c)    # 给c赋值c-5,即10
c *= 4
print(c)    # 给c赋值c*4,即40
c /= 8
print(c)    # 给c赋值c/8,即5
c %= 3
print(c)    # 给c赋值c%3,即2
c **= 5
print(c)    # 给c赋值c^5,即32
c //= 6
print(c)    #给c赋值c/6的整数部分,即5

'位运算符'
'''
位运算符包含 按位与&、按位或|、按位异或^、按位取反~、左移位数<<,右移位数>>
按位是按二进制位,通过进制位上的数字进行运算
以上面a,b为例,其二进制表示分别为
0000 1100
0010 1000
'''
# 按位与& 对应二进制位都为1,结果二进制位为1,否则为0
print(a&b)  # 结果二进制数为 0000 1000,即8
# 按位或| 对应二进制位都为0,结果二进制位为0,否则为1
print(a|b)  # 结果二进制数为 0010 1100,即44
# 按位异或^ 对应二进制位不同为1,相同为0
print(a^b)  # 结果二进制数为 0010 0100,即36
# 按位取反~ 当前二进制数全部位数取反,0变1,1变0
print(~a)   # 结果二进制数为 1111 0011,负数的补码形式,相当于-(0000 1101),即-13
# 左移位运算符<< 所有二进制数向左移动右边数值位数,高位移动,低位补0
print(a<<5) # 结果二进制数为 0001 1000 0000,即384
# 右移位运算符>> 所有二进制数向右移动右边数值位数,低位移动,高位补0
print(a>>3) # 结果二进制数为 0001,即1

'''
逻辑运算符
'''
# python支持and,or,not三种逻辑运算符
'and,布尔与,设两个变量a、b,a为0或False,则(a and b)返回0或False,否则返回b的数值'
print(a and b)  # 由于a有非0值,所以返回b的数值
a = 0
print(a and b)  # 由于a==0,所以返回0
a = False
print(a and b)  # 由于a==False,所以返回False
'or,布尔或,设两个变量a、b,a为True或非0数值,则返回True或非0数值,否则返回b的数值'
print(a or b)   # 由于a==False,所以返回b的数值
a = True
print(a or b)   # 由于a==True,所以返回True
a = 12
print(a or b)   # 由于a==12,所以返回a的具体数值

'''
成员运算符
'''
# python有in,not in两种成员运算符
list = [11, 12, 13, 14, 15]
# a in list 用来判定list中是否有等于a的数值
print(a in list)    # 存在返回True
print(b in list)    # 不存在返回False
# a not in list 用来判定list中是否没有等于a的数值
print(a not in list)    # 存在返回False
print(b not in list)    # 不存在返回True

'''
身份运算符
'''
# python有is,is not两种身份运算符
# id()函数用以获取对象的内存地址
'is 用来判断两个标识符是否引用自同一个对象,另外,(a is b) 类似 (id(a) == id(b)),并且如果引用自同一个对象则返回True,否则返回False'
print(a is b)
a = b
print(a is b)
a = 40
print(a is b)
'is not 与 is 相反,用来判断两个标识符是否不是引用自同一个对象,另外,(a is not b) 类似 (id(a) != id(b)),并且如果不是引用自同一个对象则返回True,否则返回False'
print(a is not b)
a = b
print(a is not b)
a = 12
print(a is not b)
'''
额外说明 is 和 == 之间的区别:
is 用来判断前后两者是否引用自同一个对象,而 == 用来判断前后两者数值上是否相等
'''
list_S = list
print(list is list_S)
print(list == list_S)   # 由于list_S是引用自list对象的,所以两种情况答案相同
list_S = list[:]
print(list is list_S)
print(list == list_S)   # 由于list_S是引用自list[:]对象的,所以 is 结果为False,而数值上相等,所以 == 结果为True

'''
列一下算法优先级表,从上到下,优先级依次降低
**                          指数 (最高优先级)
~ + -                      按位翻转, 加号和减号
* / % //                    乘,除,取模和取整除
+ -                         加法减法
>> <<                       右移,左移运算符
&                           位 'AND'
^ |                         位运算符
<= < > >=                   比较运算符
<> == !=                    等于运算符
= %= /= //= -= += *= **=    赋值运算符
is is not                   身份运算符
in not in                   成员运算符
not or and                  逻辑运算符
'''
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: