Python学习之旅

  • Python核心编程基础篇2020.12.18
  • 一、算数运算符
  • 二、比较运算符
  • 三、赋值运算符
  • 四、逻辑运算符
  • 五、成员运算符
  • 六、身份运算符
  • 七、三目运算符
  • 八、运算符优先级
  • 九、位运算符
  • 十、作业


Python核心编程基础篇2020.12.18

指导教师:逻辑教育讲师Amy

一、算数运算符

运算符

说明

+


-


*


/


%

求余(模)

**

幂次

//

整除

  • 遵循算数运算顺序法则:括号→乘除→加减
  • 加减运算,其对象只要有浮点数类型运算结果即为浮点数类型
  • /运算结果为浮点数
  • divmod(a, b)方法返回数组(a//b, a%b),例:print(divmod(10, 3))输出(3, 1)
  • 运算结果精度问题from decimal import Decimal
  • Python在计算浮点数时有时会出现精度问题如下
    (二进制有穷性,计算机先把数值转换成二进制,在计算,完成后再转换为十进制)
    在Python中使用round(numbei, nights)四舍五入(四舍六入五成偶)并不能完全解决问题,我们可使用decimal这个模块来解决浮点数精度问题,比如银行货币计算
  • decimal模块应用

二、比较运算符

运算符

说明

==

比较值是否相等

!=

比较值是否不相等

>

大于

<

小于

>=

大于等于

<=

小于等于

注意

  • int类型不能与str类型比较
  • ==之间不能有空格
  • strstr之间比较ASCII值,且逐个比较
    如:
  • 可连续比较
    a>b>c意思为a>b and b>c

三、赋值运算符

运算符

说明

示例

=

赋值

c= a+b

+=

加法运算

c+=b等效于c = c+b

-=

减法运算

c-=b等效于c = c-b

*=

乘法运算

c*=b等效于c = c*b

/=

除法运算

c/=b等效于c = c/b

**=

幂次运算

c**=b等效于c = c**b

%=

求余运算

c%=b等效于c = c%b

//=

整除运算

c//=b等效于c = c//b

注意

  • 赋值是将等号右边赋值给等号左边
  • +=等中间不能有空格,Python中无a++,a--

四、逻辑运算符

运算符

表达式

描述

and

a and b

a,b都为True,返回True

or

a or b

a,b其中有一个为True,返回True

not

not a

aTrue时,返回not a返回False

注意

  • print(10 and 20)返回10,print(10 or 20)返回10,此为短路原则

五、成员运算符

Python独有运算符,用来判断某个对象是否在某个集合当中,返回结果为TrueFalse

运算符

说明

in

判断对象是否集合中,则返回True

not in

判断对象是否不在集合中,不在则返回True

六、身份运算符

Python特色语法

运算符

说明

is

判断两对象地址是否一致则返回True

is not

判断两对象是否不一致不是则返回True

注意

  • print(id(a))可打印出变量a的地址
  • is判断两变量地址是否一致,==判断两变量值是否相等

七、三目运算符

  • True statement if expression else False statement,如果expression表达式为True,则执行if前面的statement语句,如果为False,则执行else后面的statement语句
  • 例:

八、运算符优先级

下表运算顺序为由高到低,同级由左至右(赋值为从右至左)

运算符

描述

**

指数(最高)

* / % //

乘 除 求余 整除

+ -

加 减

<= < > >=

比较运算符

== !=

比较运算符

= %= /= //= -= += *= **=

赋值运算符

is ,si not

身份运算符

in, not in

成员运算符

and or not

逻辑运算符

九、位运算符

二进制运算

运算符

说明

&

按位与:两者都为1,才为1

|

按位或:一个为1即为1

^

按位与:两者不相同为1,相同0

十、作业

  • 作业一
  • 作业二

    为True,只比较了左侧的a的ASCII码值和右边x的ASCII码值
  • 作业三

    fi执行了1.先temp == 'yes'比较运算,两字符6yASCII码不相等为False,再是False or 'no'逻辑运算,字符串'no'非空为True,所以整个条件expression为真,所以条件语句执行print('if执行了')
  • 作业四

    is判断两俩对象内存地址是否一致,一致返回True==判断俩对象值是否相等,相等返回True
  • 作业五
  • 作业六