Python语言元素之运算符
Contents
运算符
以下表格是按照运算符的优先级从上到下列出的。所谓优先级,就是在同一个运算的表达式中,如果出现了多个运算符,应该先执行哪个运算再执行哪个运算的顺序。在实际开发中,如果搞不懂就使用圆括号来确保运算的执行顺序。
运算符 | 描述 |
---|---|
[] [:] |
下标、切片 |
** |
指数 |
~ + - |
按位取反、正、负 |
* / % // |
乘、处、模、整除 |
+ - |
加、减 |
>> << |
右移、左移 |
& |
按位与 |
^ 、 | |
按位异或、按位或 |
< = < > > = |
小于等于、小于、大于、大于等于 |
= = ! = |
等于、不等于 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
= += -= *= /= %= //= **= &= … |
(复合)赋值运算符 |
算术运算符
加减乘除,整除,求模(求余数),求幂,
|
|
|
|
说明:上面的print函数中输出的字符串使用了占位符语法,其中
%d
是整数的占位符,%f
是小数的占位符,%%
表示百分号(打印的时候!因为百分号代表了占位符,所以带占位符的字符串中要表示百分号必须写成%%
),字符串之后的%
后面跟的变量值会替换掉占位符然后输出到终端中。
赋值运算符
赋值运算符的作用是将右边的值赋给左边的变量。
|
|
比较运算符和逻辑运算符
比较运算符有地方也叫关系运算符,包括< =
<
>
> =
= =
! =
,比较运算符会产生布尔值,要么是True
要么是False
。
逻辑运算符有三个,分别是not
or
and
。
and:(而且)连接两个布尔值,如果两个值都是True,那么运算结果就是True。如果有一个值是False,结果为False。如果and左边的值为False,不管右边的值是什么,结果都是False,所以在做运算的时候右边的值会被跳过(短路处理),即右边的表达式根本不会执行
or:(或者)连接两个布尔值,如果两个值有任意一个True,结果就是True。当然or也有短路功能,左边为True时,右边不会执行。
not:(否)后面跟上一个布尔值,作用是得到与该布尔值相反的值,也就是说not True = False,not False = True。
|
|
比较运算符的优先级高于赋值运算符,所以
flag0 = 1 == 1
先做1==1
产生布尔值True,然后再讲这个值赋值给变量flag0。
is
和is not
表示判断。flag1 is True
即是判断flag1的值是True,是真是假,真即为True;同样 flag2 is not False,即判断flag2是True是真是假,假即为False。print函数可以输出多个值,多个值之间可以用
,
进行分隔,输出的内容之间默认以空格分开。
运算符的例题
例1:华氏温度转化为摄氏温度
华氏温度到摄氏温度的转换公式为:C=(F-32)/1.8
|
|
输出格式化
说明:在使用print函数输出的时候,也可以对字符串内容进行格式化处理,
print('%f'%(a))
上面的print函数中的字符串%.1f
是一个占位符,稍后会由一个float
类型的变量值来替换掉它,并且小数点后保留1位有效数字
。同理,如果字符串中有%d
,后面会由一个int
类型的变量值来替换。而%s
会被字符串
的值替换。字符串之后的%
后面跟的变量值会替换掉占位符然后输出到终端中。
print(f'{a}')
字符串前面加f表示格式化字符串,加f后可以在字符串里面使用用花括号括起来的变量和表达式,如果字符串里面没有表达式,那么前面加不加f输出应该都一样。其中{f:.1f}
和{c:.1f}
可以先看成是{f}
和{c}
,表示输出时会用变量f
和变量c
的值替换掉这两个占位符。后面的:.1f
表示这是一个浮点数,小数点后保留1位有效数字。
例2:输入圆的半径计算计算周长和面积
|
|
例3:输入年份判断是不是闰年
闰年
:能被400整除。或者能被4整除但不能被100整除。
|
|
说明:比较运算符会产生布尔值,而逻辑运算符
and
和or
会对这些布尔值进行组合,最终也是得到一个布尔值,闰年输出True
,平年输出False
。
补充
eval():评估函数。去掉参数最外侧引号,并执行余下语句的函数。
eval(tempstr[0:-1]):如果tempstr的值是"12.3",输出的是12.3
|
|
Author kong
LastMod 2021-07-06