Python内置数据类型概述
- 数值数据类型:int、bool、float、complex
- 序列数据类型:不可变(str、tuple、bytes)和可变(list、bytearray)
- 集合数据类型:set、frozenset
- 字典数据类型:dict。例如:{1: “one”, 2: “two”}
- NoneType、NotImplementedType和EllipsisType
1、int(任何精度整数)
1、第一个是字符串类型
int(x,base=10)#创建int对象,指定进制base(2到36之间)
实战
int('100',2)#4
2、float
小数只有float。但是存在精度问题,实例如下:
print(0.4-0.3)#0.10000000000000003
float对象示例
只有浮点数才可以调用is_integer()
float类型(有限精度浮点数)
方法 | 说明 | 示例 |
---|---|---|
as_integer_radio() | 转换为分数 | print(1.25.as_integer_ratio())#(5, 4) print(float.as_integer_ratio(1.25)) #(5, 4) |
hex() | 转换为十六进制字符串 | print(12.3.hex()) #0x1.899999999999ap+3 print(float.hex(1.1)) #0x1.199999999999ap+0 |
fromhex(string) | 十六进制字符串转换为浮点数 | print(float.fromhex(‘0xFF’))#255.0 |
is_integer() | 判断是否为int类型 | print(3.14.is_integer())#False print(float.is_integer(2.0))#True |
实战–浮点数运算实例
print(float(2))#2.0
print(0.4-0.3)#0.10000000000000003
print(abs(0.4-0.3)-0.1)#2.7755575615628914e-17
print(type(float))#<class 'type'>
print(float(123),float('3.14'))#123.0 3.14
print(float('Infinity'),float('-Infinity'),float('NaN'))#inf -inf nan
print(float('123abc'))
#Traceback (most recent call last):
File "E:\Python\nterm\1.py", line 20, in <module>
print(float('123abc'))
ValueError: could not convert string to float: '123abc'
有限精度浮点数
a=12.1#只有浮点数才可以调用这个函数
print(a.is_integer())
sys.argv可以用来获取命令行参数,其中sys.argv[0]为脚本名,即python文件名,列表中其他值为传入的参数值
3、complex类型(复数)
complex(real[,imag])
#创建complex对象(虚部可选)
print(type(1+2j))#<class 'complex'>
c = complex(4,5)
print(c)#(4+5j)
属性/方法 | 说明 | 示例 |
---|---|---|
real | 复数的实部 | print((1+2j).real)#1.0 |
imag | 复数的虚部 | print((1+2j).imag)#2.0 |
conjugate | 共轭复数 | print((1+2j).conjugate())#(1-2j) |
a = 1+2j
b = complex(4,5)
print(a+b)#(5+7j)
import cmath
#复数的平方根
print(cmath.sqrt(b))#(2.280693341665298+1.096157889501519j)
4、bool数据类型和相关运算符
(1)Python的任意表达式都可以评价为布尔逻辑值,故均可以参与逻辑运算。
>>> not 0 #输出:True
>>> not 'a' #输出:False
(2)C = A or B。如果A不为0或者不为空或者为True,则返回A;否则返回B。仅在必要时才计算第二个操作数,即如果A不为0或者不为空或为True,则不用计算B。“短路”计算。
>>> 1 or 2 #输出:1
>>> 0 or 2 #输出:2
>>> False or True #输出:True
>>> True or False #输出:True
(3)C = A and B。如果A为0或者为空或者为False,则返回A;否则返回B。仅在必要时才计算第二个操作数,即如果A为0或者为空或者为False,则不用计算B。即“短路”计算。
>>> 1 and 2 #输出:2
>>> 0 and 2 #输出:0
>>> False and 2 #输出:False
>>> True and 2 #输出:2
5、str数据类型(字符串)
- Python中没有独立的字符数据类型,字符即长度为1的字符串
- Python内置数据类型str,用于字符串处理
- str对象的值为字符系列
- str对象(字符串)是不可变对象
- 使用单引号或双引号括起来的内容,是字符串字面量;三单引号(‘’‘ ’‘’),三双引号(“”“ ”“”)可以跨行
6、字符串编码
Python 3字符默认为16位Unicode编码
使用内置函数ord()可以把字符转换为对应的Unicode码
使用内置函数chr()可以把十进制数转换为对应的字符。
7、混合运算和数值类型转换
7.1、混合运算和隐式转换
- int、float和complex对象可以混合运算
- 如果表达式中包含complex对象,则其他对象自动转换(隐式转换)为complex对象,结果为complex对象
- 如果表达式中包含float对象,则其他对象自动转换(隐式转换)为float对象,结果为float对象
- 显式转换(强制转换)
- 使用target-type(value)将表达式强制转换为所需的数据类型
8、内置标准数学函数
函数 | 含义 | 实例 | 结果 |
---|---|---|---|
abs() | 数值x的绝对值。如果x为复数,则返回x的模 | abs(-1.2) abs(1-2j) | 1.2 2.23606797749979 |
divmod(a,b) | 返回a除以b的商和余数 | divmod(5,3) | (1, 2) |
pow(x,y[,z]) | 返回x的y次幂(x**y)。如果指定z,则为pow(x,y)%z | pow(2,10) pow(2,10,10) | **1024 ** 4 |
round(number[,ndigits]) | 四舍五入取整。如果指定ndigits,则保留ndigits小数 | round(3.14159) round(3.14159,4) | **3 ** 3.1416 |
sum(inerable[,start]) | 求和 | sum((1, 2, 3)) sum((1, 2, 3), 44) | 6 50 |
问题
输出不出来
import sys
a = float(sys.argv[1])
b = float(sys.argv[2])
c = a * b
print(a,'*',b,'=',c)