python学习之路☞5.运算符和表达式

今日起得比较早,持续练习代码,学习代码,到了一个编程领域的概念,操作数,运算符和表达式,然后勤加练习

'''
操作数:变量或数据
运算符:执行特殊操作的符号
    赋值运算符:把数据赋予变量的符号
        =
    算术运算符:对操作数执行运算返回运算结果的符号
        + - * / % // ** 
    比较运算符:对操作数执行比较返回真假的符号(不同数据类型操作数比较毫无意义)
        == != < <= > >=
    布尔运算符:对返回真假的表达式或操作数执行运算并返回真假的符号
        and or not
表达式:一段可以参与运算的结构,由操作数和运算符构成
'''
# 赋值运算符
a = 10
b = 2

# 算术运算符
print('--------算术运算符---------')
print('+:', a+b)
print('-:', a-b)
print('*:', a*b)
print('/:', a/b)
print('%:', a % b)
print('//:', a//b)
print('**:', a**b)

# 比较运算符
print('--------比较运算符---------')
print(a == b)
print(a != b)
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
# 这里注意,不同类型变量比较毫无意义,这是毫无意义的比较(甚至可能会存在异常)
print('主' == 6)
print('主' != 6)

# 布尔运算符
print('--------布尔运算符---------')
print(True and True)  # and 必须满足两边返回的结果都为真才能返回真
print(False and True)
print(True or False)  # or 必须满足至少一边返回的结果为真才能返回真
print(False or False)
print(not True)  # not 颠倒是非黑白真假
print(not False)

# 练习
print('--------练习---------')
'''
根据相亲标准,判断相亲条件是否符合?
栋栋的相亲标准是
    - 160cm 以上的女孩
    - 年薪 10w 及以上 或者 家里有矿 或者 家里有厂 的女孩
    - 喜欢 唱 跳 rap 篮球 就是那种酷酷得女孩——也就是假小子
    - 经常锻炼有腹肌和胸肌 让栋栋有安全感的女孩
'''

# 创建一个判断函数打印真假


def yes_or_no(name, height, year_salary, like_song, like_jump, like_rap, like_basketball, exercise_abdominal_muscels, exercise_chest_muscels):
    print('通过判断', name, '对象为:', height > 160.0 and (year_salary >= 100000.0 or home_rich or home_factory)
          and like_song and like_jump and like_rap and like_basketball and exercise_abdominal_muscels and exercise_chest_muscels)


# 这是对象的标准
name = 'duo'
height = 160.1
year_salary = 100000.0
home_rich = False
home_factory = False
like_song = True
like_jump = True
like_rap = True
like_basketball = True
exercise_abdominal_muscels = True
exercise_chest_muscels = True
# 使用函数判断是否符合标准
yes_or_no(name, height, year_salary, like_song, like_jump, like_rap,
          like_basketball, exercise_abdominal_muscels, exercise_chest_muscels)

# 这是对象的标准
name = 'lili'
height = 159.999
year_salary = 100000.0
home_rich = False
home_factory = False
like_song = True
like_jump = True
like_rap = True
like_basketball = True
exercise_abdominal_muscels = True
exercise_chest_muscels = True
# 使用函数判断是否符合标准
yes_or_no(name, height, year_salary, like_song, like_jump, like_rap,
          like_basketball, exercise_abdominal_muscels, exercise_chest_muscels)

参考

6 布尔类型和条件表达式_哔哩哔哩_bilibili
7 条件表达式题目讲解_哔哩哔哩_bilibili
Python-Core-50-Courses/第04课:Python语言元素之运算符.md at master · jackfrued/Python-Core-50-Courses · GitHub

5 Likes

感谢你的教程

1 Like

可以尝试看英文文档学习,通俗易懂,内容丰富,打好基础

1 Like

你怎么就5来了tieba_087

1 Like

感谢你的分享

1 Like

嗯,今天起得早,稍微发力

谢谢你来看看我

1 Like

谢谢,我英语忘光了,我只能学中文翻译和别人嚼烂的,等我哪天学学英语吧

谢谢你来看看我,

那我今天继续2了tieba_087

1 Like

嗯学吧,慢慢来,有什么问题可以一起探讨

1 Like

今天在练习和复习运算符和表达式代码的时候,我突然发现求模运算和取余数好像不是一个意思

※求模运算(%)和人类取余数运算的结果在正数情况下结果是相同的,然而,在处理负数时,它们的行为是不同的,求模运算的结果的符号与除数相同,而人类取余数运算的结果的符号与被除数和除数的符号都有关系。这是两者的关键区别。

正常来说,人类的除法运算公式是 商 = 被除数 / 除数 则有 余数 = 被除数 - 商×除数 ,则有如下定理

  • 当被除数为正数,除数为正数时,余数为正数。
  • 当被除数为负数,除数为正数时,余数为负数。
  • 当被除数为正数,除数为负数时,余数为正数。
  • 当被除数为负数,除数为负数时,余数为负数。

python 的求模运算,基本原理是:对于两个整数 abb 不为零),a % b 的结果是 a 除以 b 的余数。余数的范围是从 0b-1
以下是一些求模运算的示例:

5 % 3  # 结果是 2,因为 5 除以 3 商 1 余 2
-5 % 3  # 结果是 1,因为 -5 除以 3 商 -2 余 1
5 % -3  # 结果是 -1,因为 5 除以 -3 商 -1 余 -1
-5 % -3  # 结果是 -2,因为 -5 除以 -3 商 1 余 -2

以下是一些人类求余数运算的示例:

5 % 3  # 结果是 2,因为 5 除以 3 商 1 余 2
-5 % 3  # 结果是 -2,因为 -5 除以 3 商 -1 余 -2
5 % -3  # 结果是 2,因为 5 除以 -3 商 -1 余 2
-5 % -3  # 结果是 -2,因为 -5 除以 -3 商 1 余 -2

可以看到很奇怪,被除数(a)和除数(b)之一有带上符号运算的结果和我们人类除法运算的结果完全不同, 在Python中,求模运算(%)的结果的符号与除数(b)相同,而不是被除数(a)。

根据这个特性,详细看一下 -5 % 3 的计算过程。
在求模运算中,我们要找到一个整数 q(商)和一个整数 r(余数),使得:-5 = 3 * q + r
其中 0 <= r < |3||3| 表示 3 的绝对值)。
尝试找到一个合适的商 q。因为 -5 是负数,我们从负数开始尝试。

  • 如果 q = -1,那么 3 * (-1) = -3-5 - (-3) = -2,但是 -2 不满足 0 <= r < |3|
  • 如果 q = -2,那么 3 * (-2) = -6-5 - (-6) = 1,此时 1 满足 0 <= r < |3|

所以,-5 % 3 的结果是 1 ,因为 -5 除以 3-21 ,余数的符号与除数 3 相同。

当然这样分析过于复杂了,其实 在Python中还有一个特性,整数除法使用的是“向下取整”的方式,也就是说,商总是向负无穷方向取整。
让我们再次看一下 -5 % 3 的计算过程:

  • -5 除以 3,商是 -1.666...,但是在整数除法中,我们需要向下取整,所以商是 -2
  • 然后,我们计算余数:-5 - (3 * (-2)) = -5 - (-6) = 1

所以,-5 % 3 的结果是 1,因为 -5 除以 3-21,余数的符号与除数 3 相同。
这就是取模运算与人类取余数运算不同的地方,你学废了吗?(反正我是学废了>_<)

总结:python的开发怕不是有’外星人’的参与,这么反人类的思想,也只有计算机才能拥有了。总之 记住以下几点:

  1. 求模运算的结果的符号与除数(b)相同。
  2. 整数除法使用的是“向下取整”的方式,商总是向负无穷方向取整。
  3. 求模运算的结果是使得被除数可以表示为除数乘以商再加上余数的形式,并且余数的范围在 0 到除数的绝对值之间(不包括除数的绝对值)。

加油,日拱一卒,步步精进

1 Like

:bili_018:要学废了

1 Like