+(加)、-(减)、*(乘)、/(除)、%(取余、取模)、//(整除)、**(幂)
print(2/5)#0.4
print(8%2) #2
print(15%4) #3
#应用:取低位数,取个位数,%10,取百位数%100
print(12312%100)
print(8979%10)
print(5/2)
print(5//2)
print(-5//2) #-3
print(89//3)
print(-289//32)
#应用:去掉低位数,获取最高位
print(28013//100)
#练习:获取任意一个整数的十位数
#方法一
print((345//10)%10)
print((18976//10)%10)
print(6%6)
#方法二
print((345%100)//10)
print((18976%100)//10)
print(6//10)
print(2**3)
print(25**0.5)#开平方
print(27**(1/3))#开三次方
print(29**4)
print(10%2==0) #= =
print(5!=5) #! =
print(3!=1)
print(78>=21) #> =
print(213<=59) # < =
age=999
print(12<=age<=80)#C语言 12<=age && age<=78
#and or not
num=21
print(num,'是否能够同时被3和7整除',num%3==0 and num%7==0)
print(num,'是否能够同时被3和7整除',num%21==0)
num2=4
print(num2 %3==0 or num2 %7==0 or num2 %5==0)
years=eval(input('年份:'))
print((years%4==0 and years%100!=0 )or ( years%400==0))
#对一个条件进行否定 not True->false
age=212
print(not (age%3==0 and age%7==0))
逻辑与运算的短路操作:如果第一个条件是false,那么后面的条件不会执行
False and print('条件1')
print('==========')
逻辑或运算的短路操作:如果第一个条件是True,那么后面条件不再执行
False or print('条件2')
python中任何类型的数据都可以转换成布尔
转换规则:任何为0为空的值都会转换成false,其他都是true
空串 “” [] () {} -> false
none ->false
print(bool(0))
print(bool(''))
print(bool(None))
数据1 and 数据 2
如果数据1的布尔值是True,结果就是数据2
如果数据1的布尔值是false,结果就是数据1
也可理解为找到假值就直接返回假值,一直是真值就一直是找下去,返回最后一个真值
print(0 and 10) #0
print(1 and 2) #2
print(-3 and 9) #9
print(None and 'abc')#None
print(False and 100) #False
数据1 or 数据2
如果数据1的布尔值是true,结果就是数据1;如果数据1的布尔值是false,结果就是数据2
也可理解为一直找真值,找到真值就返回真值,否则就一直找下去,返回最后一个假值
print(0 or 10) #10
print(1 or 2) #1
print(-3 or 9) #-3
print(None or 'abc')#abc
print(False or 100) #100
print(not 100) #false
print(not 'abc') #false
print(not "") #true
给变量赋值,不会产生结果(数据)!!!
赋值语句没有结果
num =100
num +=10
num *=3
num %=4
print(num)
print(bin(89))
print(bin(0o45))
print(bin(25263))
正数的原码补码反码一样
负数才有反码和补码
反码: 符号位不变,其余各位取反
10(反码) 0 0001010
-10(反码)1 1110101
补码 反码加1 1110110
计算器底层只能做加法,所以需要原码补码反码
减法 就是 负数补码相加 得到的(是反码)变成原码就是运算结果
位运算:对计算机内存空间里面的数对二进制数进行运算:&(与)、|(或)、^(异或)、<<(左移)、>>(右移)
应用1:偶数二进制存储最低位一定为0,奇数最低位(2的0次方)一定是1,若某数与1相与,则保留了最低位,其他位置0
或 ( | ) 有1个为1,结果为1 应用:置1
异或 ( ^ ) 二进制相异,结果为1 异或两次,还原
按位取反 (~) ,对每个二进制位取反,即把1->0,0->1
左移 (<
print(3<<1)#6 乘2的1次方 <
print(5<<1)#10
print(-2<<1)#-4
print(6>>1) #3
print(-5>>1)#-3
num= 10
num *=8*2 # num*=16
print(num)
#闰年判断
years=eval(input('请输入年份:\n'))
print(years)
if (years%4==0 and years%100!=0)or (years%400==0):
print('该年是闰年')
else:
print('该年是平年')
#判断偶数多种方法
num=eval(input('请输入一个数:'))
if num%2==0:
print('偶数')
else:
print('奇数')
#一种有点费脑子的写法
if num%2: #布尔值 num%2 if 为真 就执行if后面的语句
print('奇数')
else:
print('偶数')
if not num%2: #不 假 则真
print('偶数')
else:
print('奇数')
str1=''
if str1:# if真
print('不是空串')
else:
print('是空串')
if score < 60:
print('E')
elif score < 70:
print('D')
elif score < 80:
print('C')
elif score < 90:
print('B')
else:
print('A')
num = eval(input('请打印一个数\n'))
if num % 2:
print('奇数')
else:
print('偶数')
if num % 4 == 0:
print('且是4的倍数')