Python基础之零碎知识——运算符、断言语句
该部分作为python里的一些零碎的知识,但是又极为重要。掌握这些知识点,我相信大家的python水平定能提升一个台阶。
一、运算符
1、运算符详解
运算符主要分为五大类:赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符
1)赋值运算符
python中的赋值运算符和别的编程语言一样,都是“=”
#input
a = '时间都去哪了'
b = '鬼知道'
c = '我好像知道哎'
print('小明说:"{:<10s}" "{:>10s}" "{:^10s}"'.format(a,b,c))
#output
小明说:"时间都去哪了 " " 鬼知道" " 我好像知道哎 "
2)算术运算符
算术运算符,主要是用于数字类型,字符串类型的数据无法使用算术运算符。(如果你真想用,用用 ‘+’ 就好了hhhhhhh),
当算术运算符和赋值同时出现时,先做运算再进行赋值。
a. +=、+
加号运算符,它的出现一般’='都会伴随出现。
#input
sum_02 = 1
add_01 = 5
add_02 = 10
sum_01 = add_01 +add_02
sum_02 += add_01
print(sum_01)
print(sum_02)
#output
15
6
b. -=、-
减号运算符,它的出现一般’='都会伴随出现。
#input
sum_02 = 1
add_01 = 5
add_02 = 10
sum_01 = add_01 -add_02
sum_02 -= add_01
print(sum_01)
print(sum_02)
#output
-5
-4
c. /=、/
除号运算符,它的出现一般’='都会伴随出现。
#input
sum_02 = 1
add_01 = 5
add_02 = 10
sum_01 = add_02/add_01
sum_02 /= add_01
print(sum_01)
print(sum_02)
#output
2.0
0.2
d. *=、 *
除号运算符,它的出现一般’='都会伴随出现。
#input
sum_02 = 1
add_01 = 5
add_02 = 10
sum_01 = add_02*add_01
sum_02 *= add_01
print(sum_01)
print(sum_02)
#output
50
5
e. //
求商运算符
#input
sum_02 = 1
add_01 = 5
add_02 = 10
sum_01 = add_02//add_01
sum_02 //= add_01
print(sum_01)
print(sum_02)
#output
2
0
f. %
取余运算符
#input
sum_02 = 1
add_01 = 5
add_02 = 10
sum_01 = add_02%add_01
sum_02 %= add_01
print(sum_01)
print(sum_02)
#output
0
1
g. **
平方运算符
#input
sum_02 = 1
add_01 = 5
add_02 = 10
sum_01 = add_02**add_01
sum_02 **= add_01
print(sum_01)
print(sum_02)
#output
100000
1
3)关系运算符
python中关系运算符的返回值为Boolean,值有且只有两种True、False。因此,关系运算符常用于判断语句中。
格式:表达式1 关系运算符 表达式2
判定表达式1和表达式2是否满足关系运算符。若满足,返回True,否则返回False
a. ==
格式:表达式1 == 表达式2
表达式1 和 表达式2 是否相等,若相等返回True,否则返回False
b. !=、<>
格式:表达式1 != 表达式2 或者 表达式1 <> 表达式2
表达式1 和 表达式2 是否不相等,若不相等返回True,否则返回False
c. >=
格式:表达式1 >= 表达式2
表达式1 大于等于 表达式2 ???
d. <=
格式:表达式1 <= 表达式2
表达式1 小于等于 表达式2 ???
e. is
格式:表达式1 is 表达式2
表达式1 是 表达式2 ???
f. is not
格式:表达式1 is not 表达式2
表达式1不是表达式2 ???
g.实例代码:
我们可以使用下述代码,通过更换if后面的参数和关系运算符来学习各个关系运算符的作用。
# == != >= <= <> is is not
a = range(0)
b = 1
c = '时间'
d = 1.1
e = bool(1)
f = [1,2]
g = (1,2)
if f == g:
print('我想你了!')
else:
print('我不想你!')
4)逻辑运算符
python中逻辑运算符有:与(and)、或(or)、非(not)
逻辑运算符的返回值也是Boolean.
5)位运算符
Python中位运算符主要有:&(按位与) 、|(按位或) 、 ^(异或)、 <<(按位左移)、 >>(按位右移)、~(取反)
我们再使用位运算符时,基本思路就是:将十进制或者十六进制的数转换为二进制,然后进行位运算
#按位与 : & ----------(同为1,才是1)
5&3 = 1 ------> 101 011 001 相同位仅为个位1 ,故结果为 1
#按位或 :| ----------(一个为1,就为1)
5|3 = 7 ---------- ------> 101 011 出现1的位是 1 1 1,故结果为 111
#按位异或 :^ ----------(相同为0,不同为1)
5^3 = 6 ---------- ------> 101 011 对位相加是 1 1 0,故结果为 110
#按位反转 :~ (将二进制数+1之后乘以-1)
~5 = -6 ---------- ------> ~x = -(x+1),-(101 + 1) = -110
~7 = -(0111+1)= -1000 = -8
#按位左移 :<< (向左移动n位然后空位补0)
5<<2 = 20 ---------- ------> 101 向左移动2位得到 10100 ,即右面多出2位用0补
#按位右移 :>> (向右移动n位然后空位补0)
5>>2 = 1 ---------- ------> 101 向右移动2位得到 001 ,即左边用0补
14 二进制:1110 001 110
上述示例,取自gf520it 这位大佬
2、三目运算符
格式: 结果 if 表达式 else 结果
判断表达式是Ture还是False
如果是Ture则将IF前面的内容进行运算
如果是False则将else后面的内容运算结果
#input
a = 6
b = 5
result = (a+b) if a<b else (b-a)
print(result)
#output
-1
3、运算符优先级
** 优先计算
~ .
+ -(符号运算符) .
* / // % .
+ -加减
<< >>
&
^
|
== != > >= <= <
Is is not .
Not .
And .
Or 最后运算
二、断言语句
python中的断言语句是由关键字:assert组成的
assert语句格式:assert 表达式,返回数据
当表达式为False时则触发AssertionError异常
#input
try:
a=input("请输入一个数字:")
assert a.isdigit(),"只能输入数字"
print("你输入的是:",a)
except Exception as error:
print("发现错误:",error)
#output
请输入一个数字:时间
发现错误: 只能输入数字