python(day002——基础知识2)

本文深入解析了二进制、八进制、十六进制与十进制之间的转换方法,通过Python内置函数oct、hex、bin进行演示。同时,详细介绍了Python中的算术运算、比较运算、逻辑运算、赋值运算、位运算、成员运算和身份运算,并展示了如何使用math和operator包进行更复杂的数学运算。

1.2进制、8进制、16进制

10进制:

123=1*10^2+2*10^1+3*10^0

切换为10进制数:

2进制:

1010=1*2^3+0*2^2+1*2^1+0*2^0=10

8进制:

123=1*8^2+2*8^1+3*8^0=83

16进制:(F是十六进制的15,A是十六进制的10)

FA9=15*16^2+10*16^1+9*16^0=4009


>>> oct(83)
'0o123'
>>> hex(4006)
'0xfa6'
>>> bin(10)
'0b1010'

#oct:从10进制计算8进制
#hex:从10进制计算16进制
#bin:从十进制计算二进制


>>> a=8
>>> bin(a)
'0b1000'
>>> type(bin(a))
<class 'str'>
>>> bin(a)[2:]
'1000'
>>> "00"+bin(a)[2:]
'001000'

>>> print("8的二进制是:",bin(8)[2:].zfill(len(bin(8))))
8的二进制是: 001000



>>> "abc".zfill(8)
'00000abc'
>> "absssssssssssc".zfill(8)
absssssssssssc'
>>> "abc".ljust(8,"*")
'abc*****'
>>> "abc".rjust(8,"*")
'*****abc'
>>> "abc".center(8,"*")
'**abc***'

2.计算机原码、反码、补码

3.运算符

3.1算术运算

#取余
>>> divmod(10,6)
(1, 4)
>>> divmod(10,6)[0]
1
>>> divmod(10,6)[1]
4

#次方
>>> 2**3  
8
>>> pow(2,3)
8

#开方,引入math包
>>> import math
>>> math.sqrt(3)
1.7320508075688772
>>> math.pi
3.141592653589793
>>> math.pow(2,3)
8.0

#绝对值
>>> abs(-1)
1
>>> math.fabs(-1)
1.0

#取整
>>> math.floor(1.33) #向上取整
1
>>> math.ceil(1.33) #向下取整
2

3.2比较、逻辑运算

>>> a>b
False
>>> a<b
True
>>> a==b
False
>>> a!=b
True
>>> a>=b
False
>>> a<=b
True

#与或非
>>> True and False
False
>>> True or False
True
>>> not False
True

3.3赋值运算

>>> a,b=1,2
>>> print(1,b)
1 2

3.4位运算

>>> a=3
>>> b=5
>>> a&b  #位与
1
>>> a|b  #位或
7
>>> a^b  #异或
6
>>> ~a  #取反
-4


#a的二进制:011
#b的二进制:101

3.5成员运算

>>> "a" in ["a",1,2,3]
True

>>> "a" in ("a",1,2,3)
True

3.6身份运算

>>> a=266
>>> b=266
>>> a is b
False
>>> a=256
>>> b=256
>>> a is b
True
#256一下都是True
>>> id(a)
140727577907424

>>> a=1000
>>> b=1000
>>> a is b
False
>>> id(a)
2583554057072
>>> id(b)
2583554057168
>>> a=b
>>> a is b
True


>>> a=[]
>>> b=a
>>> a is b
True
>>> id(a)
39646856
>>> id(b)
39646856
>>> a.append(1)
>>> b.append(2)
>>> a
[1, 2]
>>> b
[1, 2]
>>>
>>>
>>> a=[]
>>> b=[]
>>> a.append(1)
>>> b.append(2)
>>> a
[1]
>>> b
[2]
>>> id(a)
31369544
>>> id(b)
39648648

*Operator 包的应用

# -*- coding: utf-8 -*- 
import  operator

print  (operator.add(1,1))
print  (operator.sub(2,1))
print  (operator.mul(2,3))
print  (operator.truediv(6,2))
print  (operator.contains("ab","a"))
print  (operator.pow(2,3))
print  (operator.ge(1,1))
print  (operator.ge(2,1))
print  (operator.le(1,2))
print  (operator.eq(1,1))

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值