python中的运算符

算术运算符:

# /表示除法,结果是小数
print(9 / 3)
print(9 / 1)

# %表示取模,即取余数
# 对于两个浮点数 a 和 b(其中 b 不为0),a % b 的结果是 a 减去 b 的整数倍,这个整数倍使得结果尽可能接近0(但结果的符号与 a 相同)
# 如果你需要高精度的取模运算(比如金融计算中的货币取模),可能需要使用decimal模块来处理Decimal对象
# 取模公式: a % b = a - (a//b) * b
print(9 % 2)  # 1
print(3.5 % 1.5)  # 输出: 0.5
print(-3.5 % 1.5)  # 输出: -0.5
print(3.14 % 2.0)  # 输出: 1.140000104904175

# //表示取整除,返回商的整数部分,向下取整

print(9 // 2)  # 4
print(-9 // 2)  # -5
print(-9.2 // -3)  # 3.0
# 97天放假 ,还剩多少周零多少天

print("97天换算后,为", 97 // 7, "周", 97 % 7, "天")

"""
运行结果:
3.0
9.0
1
0.5
1.0
1.1400000000000001
4
-5
3.0
97天换算后,为 13 周 6 天
"""

比较运算符:


str1 = "abc##"
str2 = "abc##"

# pycharm做了处理
print(id(str1))
print(id(str2))
print(str1 == str2)  # True
print(str1 is str2)  # True

str3 = "257"
str4 = "257"
print(id(str3))
print(id(str4))

# python中比较两个字符串时, == 和is有区别吗?
"""
Python 3.11.2 (tags/v3.11.2:878ead1, Feb  7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> str1= "##"
>>> str2 = "##"
>>> id(str1)
2270114618416
>>> id(str2)
2270114723696
>>> str1 == str2
True
>>> str1 is str2
False
>>>
"""

# python中比较两个字符串时, == 和is有区别吗?
#答:有的,== 运算符用于比较两个字符串的内容是否相同。is 运算符用于比较两个对象的身份(即它们在内存中的地址)是否相同。

"""
交互模式下地址不一样了,涉及到字符串的驻留机制
Python 3.11.2 (tags/v3.11.2:878ead1, Feb  7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> str1= "##"
>>> str2 = "##"
>>> id(str1)
2270114618416
>>> id(str2)
2270114723696
>>> str1 == str2
True
>>> str1 is str2
False
>>>
"""

逻辑运算符:

为什么python中x and y的x为false,返回x的值?

答:在Python中,and 运算符用于逻辑与操作,但它的行为在处理布尔上下文(Boolean context)和非布尔值(如整数、浮点数、字符串等)时略有不同。当使用 x and y 这样的表达式时,Python实际上会遵循以下规则:

  1. 首先,Python会评估 x 的布尔值(即 bool(x))。如果 xFalse(在Python中,这包括 FalseNone、任何数值零、空序列如 ''[](){} 和特殊的单元素类型如 set()frozenset() 等),则整个 x and y 表达式的结果就是 x 的值,而不会评估 y
  2. 如果 x 的布尔值为 True,那么Python会评估 y 的值,并且整个 x and y 表达式的结果就是 y 的值。

这种“短路”行为(short-circuit behavior)是Python中逻辑运算符的一个重要特性,它允许你在不评估可能产生副作用或不必要的计算的表达式的情况下,提前确定整个表达式的结果。

关于你的问题“为什么python中x and y的x为false,返回x的值”,这是因为Python的设计者选择了这样的行为。这种设计有几个原因:

  • 直观性:在很多情况下,当你知道第一个条件(x)已经失败时,就没有必要再去看第二个条件(y)了。返回 x 的值可以立即告诉你哪个条件导致了整个表达式的失败。
  • 性能:通过避免不必要的计算,可以提高程序的执行效率。
  • 一致性:这种行为在逻辑上是一致的,因为 and 运算符的目的是确保所有条件都为真。如果第一个条件已经为假,那么整个表达式的真值就已经确定了,无需进一步评估。

因此,在Python中,x and yxFalse 时返回 x 的值,是Python语言设计的一个有意为之的特性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值