01-Python的基础知识3
Posted cmn-note
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01-Python的基础知识3相关的知识,希望对你有一定的参考价值。
- 数字
- 数字常量:
- 整型:
- 概念:
- 指代平常数学上的整数常量。Python中整型指代int类型。
- 基本运算:
- 可以执行平常的+,-,*,/ ,%以及其他操作
假设a=15,b=3
运算符 | 描述 | 实例 |
+ | 加 - 两个对象相加 | a+b返回18 |
- | 减 - 得到负数或是一个数减去另一个数 | a-b返回12 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a*b返回45 |
/ | 除 - x除以y | a/b返回0 |
% | 取模 - 返回除法的余数 | b%a返回3 |
// | 取整除 - 返回商的整数部分(向下取整) | b//a返回0 |
** | 幂 - 返回x的y次幂 | a**b返回3375 |
- 进制数
- 十进制,包括0-9以内的数字。
- 二进制0b开头, 只有0和1。
- 八进制0o开头。包括0-8。
- 十六进制0x开头。包含0-9,a-f,数字上以0x开头表示。
- 使用 int()函数进行转换
1 int(‘1101‘) #返回1101 2 int(‘1101‘,2) #返回13 3 int(‘1101‘,8) #返回577 4 int(‘1101‘,10) #返回1101 5 int(‘1101‘,16) #返回4353
- 使用内置函数bin(x),oct(x),hex(x)
1 print(bin(45)) #0b101101 返回整数i的二进制表示 2 print(oct(45)) #0o55 返回i的八进制表示
3 print(hex(45)) #0x2d 返回i的十六进制表示
- 各种进制之间的相互转换,百度呗!
- 布尔型:
- 使用True 和False 来表示“真”与“假”。 True相当于整数值1,False相当于整型0。
print(type(True)) #输出True的类型 <class‘bool‘>
- 浮点数:
- 浮点型用来处理实数,即带有小数的数字。
- 十进制数形式:6.33, 5.22, 8.9等等
- 指数形式: 89e4 就是表示 89*10**3
- 复数:
- 由实部和虚部组成,通常表示为x+yj.
- 复数的两个部分都以属性名的形式存在,分别为real与imag.
z = 5.2 + 6.9j print(z.real, z.imag) #显示5.2 6.9
- 使用complex(实部, 虚部)
complex(2,8.2)#返回(2+8.2j)
- 数字运算
操作符 | 说明 | 实例 |
** | 幂运算 | 3**2 |
~ | 按位运算 | ~7
|
- | 负号 | |
*、%、/、// | 乘法、余法、真除法、floor除法 | |
+、- | 加法、减法 | |
<<、>> | 向左移位、向右移位 | |
& |
按位与 | |
^ | 按位异或 | |
| | 按位或 | |
<、<=、>、>=、==、!= |
比较运算:小于、小于等于、大于、大于等于、等于、不等于 |
|
not | 逻辑非 | |
and | 逻辑与 | |
or | 逻辑或 |
- 计算优先级,按从上至下的顺序操作符的运算优先级依次从高到低,可以使用括号(括号优先级最高)改变优先级
v1 = 8*9+6 v2 = 8*(9+6) print(v1,"----",v2) #结果为78 ---- 120
- 计算过程自动转换数据类型:将简单的数据类型转换为复杂的数据类型
- 复杂程度顺序:布尔类型 < 整数 < 浮点数 < 复数
v1 = 5+6.5 v2 = 5+6.1+(8+9j) print(v1,type(v1),"----",v2,type(v2)) #11.5 <class ‘float‘> ---- (19.1+9j) <class ‘complex‘>
- 在Python 3.x中,“/”运算执行真除法,无论操作是否为整数,计算结果保留小数部分,类型为floor类型。“//”为floor除法。
v1 = 3/5; v2 = 3//5; print(v1,"----",v2) #0.6 ---- 0
- 位运算
- 按位取反~
#计算机内部整数用补码表示,正数补码和原码一样 #正数求补码: 原码==补码 【原码(取反)->反码(加1)->补码(符号位不改变)】 #负数求补码: 原码(取反)->反码(加1)->补码(符号位不变) # 按位取反~:零变成1,1变成0,(符号位也需要改变) ~7 #(1)7的8位二进制补码形式为 0 0000 0111, #(2)按位取反得返回结果的原码: 1 1111 1000,(已经为负数) #(3)按照运算规则取反得(有符号位):1 0000 0111 #(4)求补码,加一: 1 0000 1000 即输出 -8 ~-5 #(1)-5的8位二进制原码形式为 1 0000 0101, #(2)按位取反为 0 1111 1010, #(3)按照运算规则加一得补码(有符号位):0 1111 1011 #(4)取反码: 0 0000 0100 即输出 4
- 按位与&
3&8 #(先右对齐,看列)如果同一列两个都为1,才为1,否则为0 #3: 0000 0011 #8: 0000 1000 # 0000 0000 #输出结果为0 -8&-9 # -8: #原码:1000 1000 #反码:1111 0111 #补码:1111 1000 # -9: #原码:1000 1001 #反码:1111 0110 #补码:1111 0111 #两个补码相与 :1111 0000 #取反 1000 1111 #结果:补码: 1001 0000 = 整型的 -16
- 按位异或 ^:按位异或指为上的数相同时结果为0,否则为1;
7^4 #0000 0111 #0000 0100 #0000 0011 #结果为3 7^-4 #0000 0111 #1000 1100 (-4的补码) #1 1011 -> 1 0100 -> 1 0101 #结果为-5
- 按位或 | :按位异或指为上的数有一个为1时结果就为1,否则为0;
4|5 #结果为5 -4|5 #结果为-3
- 位移 :
# (x<<y)将x按二进制形式向左移动y位,末尾补0,符号位不变。 1<<2 #结果为4 -1<<2 #结果为-4 # (x>>y)将x按二进制形式向右移动y位,末尾补0,符号位不变。 8>>2 #结果为2 -8>>2 #结果为-2
- 逻辑运算
#逻辑非not not True,not Flase # 返回(Flase,True) #逻辑与and #"x and y" 在两个操作数为True是才为True,否则为Flase #逻辑或or #"x or y" 在两个操作数为Flase是才为Flase,否则True #
- 比较运算:返回的值为逻辑值
8>9 #结果返回Flase 4<8 #结果返回True
以上是关于01-Python的基础知识3的主要内容,如果未能解决你的问题,请参考以下文章