一、输入函数input
input函数接受来自用户的输入,输入值类型为str,使用=对输入的值进行存储。
present=input('大圣想要什么礼物呢')#present是变量;=是赋值运算符,将输入函数的结果赋值给变量present;input()函数是一个输入函数,需要输入回答
print(present,type(present))
#从键盘录入两个整数,计算两个整数的和
#第一种
a=input('请输入一个加数:')#显示:请输入一个加数:。键盘输入10
a=int(a)#将转换之后的结果存储到a中
b=input('请输入另一个加数:')#显示:请输入另一个加数:。键盘输入20
b=int(b)#将转换之后的结果存储到b中
print(a+b)#对于字符串类型,加号只起连接的作用,必须进行数据类型转换
#第二种
a=int(input('请输入一个加数:'))#显示:请输入一个加数:。键盘输入10
b=int(input('请输入另一个加数:'))#显示:请输入另一个加数:。键盘输入20
print(a+b)#显示:30
二、运算符
(1)算术运算符
(a)标准算数运算符
加(+)、减(-)、乘(*)、除(/)、整除(//)
(b)取余运算符(%)
(c)幂运算符(**)
print(1+1)#加法运算 显示:2
print(1-1)#减法运算 显示:0
print(2*4)#乘法运算 显示:8
print(1/2)#除法运算 显示:0.5
print(11//2)#整除运算(不四舍五入) 显示:5
print(-9//-4)#显示:2
print(9//-4)#整除运算(一正一负向下取整:-2.25向下取整数-3) 显示:-3
print(-9//4)#显示:-3
print(11%2)#取余运算 显示:1
print(9%-4)#取余运算(一正一负要公式:余数=被除数-除数*商 9-(-4)*(-3)=-3) 显示:-3
print(-9%4)#取余运算(-9-4*(-3)=3) 显示:3
print(2**2)#幂运算(2的2次方) 显示:4
print(2**3)#幂运算(2的3次方) 显示:8
(2)赋值运算符
(a)执行顺序是从右往左
(b)支持链式赋值 (a=b=c=20)
(c)支持参数赋值 (+=、-=、*=、/=、//=、%=)
(d)支持系列解包赋值 (a,b,c=20,30,40)
#链式赋值
a=b=c=20
print(a,id(a))#显示:20 140717202834288
print(b,id(b))#显示:20 140717202834288
print(c,id(c))#显示:20 140717202834288
#参数赋值
a=20
a+=30#相当于a=a+30 显示:50
print(a)
a-=10#相当于a=a-10 显示:40
print(a)
a*=2#相当于a=a*2 显示:80
print(a)
a/=3#相当于a=a/3 显示:26.666666666666668
print(a)
a//=2#相当于a=a//3 显示:13.0
print(a)
a%=2#相当于a=a%3 显示:1.0
print(a)
#系列解包赋值
a,b,c=20,30,40#要求左侧变量数和右侧值的个数要相等
print(a,b,c)#显示:20 30 40
#交换两个变量的值
a,b=10,20
print('交换之前:',a,b)#显示:交换之前: 10 20
a,b=b,a#交换
print('交换之后:',a,b)#显示:交换之后: 20 10
(3)比较运算符
对变量或表达式的结果进行大小、真假的比较
(>、<、>=、<=、!=)
一个变量是由三部分组成的:标识,类型,值
对象值value的比较(==)
对象标识id的比较(is,is not)
#比较运算符的结果为bool类型——True或者False
a,b=10,20
print('a>b吗',a>b)#显示:a>b吗 False
print('a<b吗',a<b)#显示:a<b吗 True
print('a<=b吗',a<=b)#显示:a<=b吗 True
print('a>=b吗',a>=b)#显示:a>=b吗 False
print('a==b吗',a==b)#显示:a==b吗 False =称为赋值运算符,==称为比较运算符
print('a!=b吗',a!=b)#显示:a!=b吗 True
a,b=10,10
print(a==b) #显示:True 说明a与b的value相等
print(a is b) #显示:True 说明a与b的id标识相等
print(a is not b) #显示:False 说明a与b的id标识相等
lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lst1==lst2) #显示:True 说明lst1与lst2的value相等
print(lst1 is lst2) #显示:False 说明lst1与lst2的id不相等
print(id(lst1))
print(id(lst2))
print(lst1 is not lst2) #显示:True 说明lst1与lst2的id不相等
(4)布尔运算符
运算符 | 运算数 | 运算结果 | 备注 |
---|---|---|---|
and | True True | True | 仅当两个运算数都为True时,运算结果才为True |
True False | False | – | |
False True | False | – | |
False False | False | – | |
or | True True | True | 只要有一个运算数为True,运算结果就为True |
True False | True | – | |
False True | True | – | |
False False | False | – | |
not | True True | False | 如果运算数为True,运算结果就为False |
False False | True | 如果运算数为False,运算结果就为True | |
in | – | – | – |
not in | – | – | – |
a,b=1,2
print(a==1 and b==2)#显示:True
print(a==1 and b<2)#显示:False
print(a!=1 and b==2)#显示:False
print(a!=1 and b!=2)#显示:False
print(a==1 or b==2)#显示:True
print(a==1 or b<2)#显示:True
print(a!=1 or b==2)#显示:True
print(a!=1 or b!=2)#显示:False
print(not b==2)#显示:False
print(not b<2)#显示:True
s='helloworld'
print('w'in s)#显示:True
print('k'in s)#显示:False
print('w' not in s)#显示:False
print('k' not in s)#显示:True
(5)位运算符
(a)位与 & 对应数位都是1,结果数位才是1,否则为0
(b)位或 | 对应数位都是0,结果数位才是0,否则为1
(c)左移位运算符 << 高位溢出舍弃,低位补0,移动一位相当于乘2,移动两位相当于乘4
(d)右移位运算符 >> 低位溢出舍弃,高位补0,移动一位相当于除以2,移动两位相当于除以4
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4的二进制 | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8的二进制 | ||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 4&8结果为0 | ||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 4丨8结果为0 | ||
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 4左移位,高位溢出舍弃,低位补0 结果为8 | ||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 4有移位,低位溢出舍弃,高位补0 结果为2 |
print(4&8)#按位与 显示:0
print(4|8)#按位或 显示:12
print(4<<1)#向左移动1位 显示:8
print(4<<2)#向左移动2位 显示:16
print(4>>1)#向右移动1位 显示:2
print(4>>2)#向右移动2位 显示:1
三、运算符的优先级
(1)先算算数运算符
幂运算符(**)——>乘(*)、除(/)、整除(//)、取余运算符(%)——>加(+)、减(-)
(2)再算位运算符
左移位运算符(<<) 、右移位运算符(>>)——>位与(&)——>位或(|)
(3)然后算比较运算符
(>、<、>=、<=、!=)
(4)再然后算布尔运算符
(and)——>(or)
(5)最后算赋值运算符(=)
(6)有括号要先算括号内的