6.基本运算符与逻辑行物理行

一.基本运算符:

        1.算数运算符

        2.赋值运算符

        3.比较运算符

        4.成员运算符

        5.逻辑运算符

        6.身份运算符

        7.位运算符

二.物理行与逻辑行

一.算术运算符

  • +:加法

  • -:减法

  • *:乘法

  • /:除法(结果为浮点数)

  • %:取模(求余数)

  • //:整除(结果为商的整数部分)

  • **:幂运算(如 2**3 结果为 8)

算数运算符的优先级与数学一致先乘除后加减,有括号的先算括号

a = 9 / 3
b=9+3
c=2*3
print(a)    #结果为3.0
print(b)
print(c)
3.0
12.0
6

 Python中的除法运算(真除法)默认返回浮点数(当操作数至少有一个是浮点数时更是如此),而加法运算(最宽)则根据操作数的类型返回相应的整数或浮点数。

真除法:

在Python编程语言中,是一种除法运算方式,其核心特点是无论操作数的类型(整数或浮点数)如何,其运算结果都会保留小数部分,即结果总是以浮点数的形式返回。

真除法的特点:

  • 结果类型:无论操作数是否为整数,真除法的结果都是浮点数。

  • 精确性:真除法能够保留除法运算的小数部分,从而提供更精确的结果。

  • 适用性:在进行需要精确结果的数学计算时,真除法是非常有用的。

最宽:

在Python中,当你尝试对不同类型的值执行算术运算时,Python会自动将这些值转换为一种共同的数据类型,以便能够执行运算。这种转换通常遵循一种“向更宽类型”转换的原则,即选择能够表示所有参与运算值的最小公共类型

例如,当你尝试将一个整数(int)和一个浮点数(float)相加时,Python会将整数转换为浮点数,因为浮点数类型能够表示更广泛(或说“更宽”)的数值范围,包括小数部分。

a=3
b=2.0
print(a+b)
5.0

二.赋值运算符

  • =:简单赋值

  • +=:加法赋值(如 a += 2 相当于 a = a + 2

  • -=:减法赋值

  • *=:乘法赋值

  • /=:除法赋值

  • %=:取模赋值

  • //=:整除赋值

  • **=:幂赋值

三.比较运算符

  • ==:等于

  • !=:不等于

  • >:大于

  • <:小于

  • >=:大于等于

  • <=:小于等于

返回值为布尔类型(True/False)

result=5>=3
answer="2"==2
print(result)
print(answer)
True
False

四.成员运算符

  • in:检查某值是否在序列中(如列表、元组、字符串)

  • not in:检查某值是否不在序列中

list1=[1,2,3,4]
print(2 in list1)
print("2" in list1)
True
False

五.逻辑运算符

  • and:逻辑与

  • or:逻辑或

  • not:逻辑非

and:

假:既表示无值,如:0,False,""(引号内什么也没有)都表示假

真:既表示有值,如:1,2,True," "(引号里有值,即使是空格也算)都表示真

当第一个为真时,无论第二个为真还是假,都返回第二个

#第一个为真,第二个也为真
print(True and True)
print(1 and 2 )
print(' 'and 1)
#第一个为真,第二个为假
print(True and False)
print(" "and"")
print(1 and 0)
#第一个为真,第二个为真
True
2
1
3
#第一个为真,第二个为假
False

0

当第一个为假时,无论第二个为真还是假,都返回第一个

#第一个为假,第二个为真
print(False and True)
print(0 and 1)
print(''and 1)
#第一个为假,第二个也为假
print(False and False)
print(0 and 0)
print(0.0 and 0)
#第一个为假,第二个为真
False
0

#第一个为假,第二个也为假
False
0
0.0

or:

当第一个为真时,无论第二个为真还是假,都返回第一个

#第一个为真,第二个也为真
print(True or True)
print(1 or 2 )
print(' 'or 1)
#第一个为真,第二个为假
print(True or False)
print(" "or "")
print(1 or 0)
#第一个为真,第二个也为真
True
1
 
#第一个为真,第二个为假
True
 
1

当第一个为假时,无论第二个为真还是假,都返回第二个 

#第一个为假,第二个为真
print(False or True)
print(0 or 1)
print(''or 1)
#第一个为假,第二个也为假
print(False or False)
print(0 or 0)
print(0.0 or 0)
#第一个为假,第二个为真
True
1
1
#第一个为假,第二个也为假
False
0
0

六.身份运算符

  • is:检查两个对象是否是同一个对象(即内存地址是否相同)

  • is not:检查两个对象是否不是同一个对象

七.位运算符

  • &:按位与

  • |:按位或

  • ^:按位异或

  • ~:按位取反

  • <<:左移

  • >>:右移

1.按位与(&)

对两个数的二进制表示进行逐位与操作,当且仅当两个相应的位都为1时,结果的位才为1。

a = 5  # 二进制: 0101  
b = 3  # 二进制: 0011  
result = a & b  # 结果: 0001   
print(result)  
1

 2.按位或(|)

对两个数的二进制表示进行逐位或操作,当至少有一个相应的位为1时,结果的位就为1

a = 5  # 二进制: 0101  
b = 3  # 二进制: 0011  
result = a | b  # 结果: 0111
print(result)
7

 3.按位异或(^)

对两个数的二进制表示进行逐位异或操作,当两个相应的位不同时,结果的位为1。

a = 5  # 二进制: 0101  
b = 3  # 二进制: 0011  
result = a ^ b  # 结果: 0110
print(result)
6

 4.按位取反(~)

对一个数的二进制表示进行逐位取反操作,0变为1,1变为0。注意,结果是一个负数,因为Python使用补码表示负数。

a = 5  # 二进制: 0101  
result = ~a  # 结果: -6 (补码: 11111111111111111111111111111010 在32位系统上)
print(result)
-6

5.左移(<<):

将一个数的二进制表示向左移动若干位,右边补0。

a = 5  # 二进制: 0101  
result = a << 2  # 结果: 10100
print(result)
20

6.右移(>>)

将一个数的二进制表示向右移动若干位,左边补符号位(即0或1,取决于原数的符号)。

a = 20  # 二进制: 10100
result = a >> 2  # 结果: 0101
print(result)
5

7.应用

1.检查奇偶性:通过按位与操作检查一个数的最低位是否为1(即检查是否为奇数)。

def is_odd(n):  
    return n & 1 == 1  
  
print(is_odd(3))  # 输出: True  
print(is_odd(4))  # 输出: False

2.交换两个数的值而不使用临时变量

a = 5  
b = 3  
a = a ^ b  
b = a ^ b  
a = a ^ b  
  
print(a)  # 输出: 3  
print(b)  # 输出: 5

3.快速计算2的幂

def power_of_two(n):  
    return 1 << n  
  
print(power_of_two(3))  # 输出: 8

一.什么是物理行? 

在使用Python代码中使用换行符分割的每一行代码,既使用回车键进行换行操作时会生成物理行

print("1.什么是物理行:代码中使用换行符分割的每一行代码,是一个物理行0")
a=1
b=2

print(a,b)#到此一共有4个物理行

二.什么是逻辑行?


对Python代码进行解释,一个语句是一个逻辑行

dic={
    "a":1,
     "b":2
}#作为一个赋值语句解释,是一个逻辑行
print("1\
2\
3")#作为一个函数调用语句解释,是一个逻辑行

三.逻辑行与物理行的关系

1.使用';'可以使多个逻辑行合并成一个物理行

q=1;w=2;e=3;print(q,w,e)  #一个物理行
#等效于
q=1
w=2
e=3
print(q,w,e)  #四个物理行
if True : a=1;else: a=2  #位于同一缩进,一个物理行
#等效于
if True:
    a=1
    else:
        a=2  #四个物理行

2.使用'\'将一个逻辑行变为多个物理行

print("1\
    2\
    3")  #一个逻辑行,三个物理行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恸流失

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值