输入函数input()
输入字符串str给变量,及即赋给变量的值是str类型,即使是数字input进去也是str 类似于c中的printf打印问题,Python中直接就可以用input提出问题,然后在控制台直接输入(类似scanf)赋值给前面的变量
a=input('one number ')
b=input('another number ')
print(int(a)+int(b)) #因为input赋值时是str类型,所以要用强制转换为int
否则会变成:
商取整(整除)操作 //
print(-9//-4) #9/4=2.25 向下取整输出为2
print(-9//4) #-9/4=-2.25 向下取整输出为-3
取余操作 %
特殊情况是一正一负: 可以记忆:%后面是正数,取余为正数;%后面是负数,取余为负数 具体原因是公式:余数=被除数-除数*商
print(9%-4) #-3 公式: 余数=被除数-除数*商 9-(-4)*(-3)=-3
print(-9%4) #3 公式: 余数=被除数-除数*商 -9-4*3 =3
赋值小问题
print('--------赋值--------')
a=2;
a*=2;
print(a,type(a))
a/=2;
print(a,type(a))
除法之后int型变为float型
系列解包赋值
类似数组,对应一个一个赋值。 若前后变量和数值数量不同,则报错
a,b,c = 20,30,40
可以用于交换值
print('----------交换两个变量的值-----------')
a,b=10,20;
print('交换之前',a,b);
a,b=b,a;
print('交换之后',a,b);
比较运算符
一个变量由val,type,id组成
比较运算符返回bool型:True False
print('a<=b吗',a<=b) #此处的<和=是一个或运算关系,满足<即真
print('a>=b吗',a>=b)
==是比较val值是否相同,不是比较标识(id)和类型(type) is是比较id值是否相同 id类似c中的地址概念,但不是地址,而是对象的唯一标识符
c=d=10;
print(c is d) #True c与d标识相同(id地址相同)都指向10
list1=[1,2,3]
list2=[1,2,3]
print(list1 is list2) #False 两个列表id不同
布尔运算数
and 与 or 或 not 非
in a串是否在b串中,类似于字符串匹配,故只能进行字符串判断
s='hello world'
print('h' in s)
print(' ' in s)
print('a' in s) #a不在 结果为False
位运算符
数值转换为二进制,再进行下面左移右移,按位与或
& 按位与:同为1,结果为1 | 按位或:有一个1,结果为1 << 左移一位:高位溢出,低位补0,即值*2 >> 右移一位: 低位截断,高位补0,即值/2
w=4;
print(w<<2) #左移两位,4*2*2
print(w>>1) #右移两位,4/2
print(w&2) #0100与0010=0000=0
print(w|2) #0100或0010=0110=6
优先级
从左至右,优先级递减,左边运算最优先
分别是算数运算,位运算,比较运算,布尔运算
|