软件测试学习 之 Python 数据类型

12 篇文章 0 订阅
12 篇文章 0 订阅
这篇博客介绍了Python3的基本数据类型,主要聚焦于数字类型,包括整型的四种表示形式(二进制、八进制、十进制和十六进制)及其转换方法,浮点型的表示,以及布尔类型的特点,特别指出在Python中,True等于1,False等于0,并能在数值运算中使用。
摘要由CSDN通过智能技术生成

PYTHON3基本数据类型

一、数字类型 

①整型

通常被称为是整型或整数,可以是正整数或负整数,不带小数点。Python3整型是没有限制大小的,可以当做long类型使用,  但实际上由于机器内存的有限,我们使用的整数是不可能无限大的。

整型的四种表现形式:

  • 2 进 制:以'0b'开头。例如:'0b11011'表示10进制的27
  • 8 进 制:以'0o'开头。例如:'0o33'表示10进制的27
  • 10进制:正常显示
  • 16进制:以'0x'开头。例如:'0x1b'表示10进制的27

各进间数字进行转换(内置函数):

bin(i):将i转换为2进制,以“0b”开头。

oct(i):将i转换为8进制,以“0o”开头。

int(i):将i转换为10进制,正常显示。

hex(i):将i转换为16进制,以“0x”开头。

【问题记录】

Python字符串与数字拼接

Python不像JS或者PHP这种弱类型或者Java语言里在字符串连接时会自动转换类型,而是直接报错

解决方案:

# 字符串拼接,字符串+数字
msg = '你的分数是:'
num = 82
# 拼接完后输出
print(msg + str(num) + '分')
# 依次输出显示
print(msg, num, '分')

输出结果: 

你的分数是:82分
你的分数是: 82 分

python3各进制转换

0b111、0o111、0x111不能直接用int函数直接转化为10进制整数,不然就会报错

解决方案

# bin(111)==’0b1101111’,oct(111)==’0o157’, hex(111)==’0x6f’,
# 这三个函数的参数需要的是10进制整数,结果是2、8、16进制对应的字符串形式
# int(110+True)或者int('111')参数可以是数值或者字符串,结果是int类型
i = 111
i_str = str(111)
i_str_b = '0b' + str(111)
i_str_o = '0o' + str(111)
i_str_x = '0x' + str(111)

# 2、8、16进制对应的带前缀的字符串形式0b...、0o...、0x...,不能直接转化为10进制整数
# int函数第一个参数要传入各进制的字符串格式,并且
# 第一个参数要和第二个参数进制数对应起来,如int(‘0x111’,8) 或者int(‘111’,8)
# 相同数字串在各进制表示的数值(十进制表示)
print("·相同数字串在各进制表示的数值(十进制表示)")
print("原数字串(十进制):%d 二进制:%d 八进制:%d 十六进制:%d" % (i, int(i_str, 2), int(i_str, 8), int(i_str, 16)))
# 改用eval函数可以执行各进制的字符串格式
print("改用eval函数")
print("原数字串(十进制):%d 二进制:%d 八进制:%d 十六进制:%d" % (i, eval(i_str_b), eval(i_str_o), eval(i_str_x)))
print()

# 相同十进制数值在各进制下的表示
print("·相同十进制数值在各进制下的表示")
# Python中%格式化不存在自动将整数转换成二进制表示的方式
print("原数(十进制):%d 八进制:%o 十六进制:%x" % (i, i, i))
# 改用format方式转换进制
print("改用format方式")
print("原数(十进制): {:d} 二进制:{:b} 八进制:{:o} 十六进制:{:x}".format(i, i, i, i, i))
# 带前缀显示
print("带前缀显示")
print("原数(十进制):%d 二进制:%s 八进制:%s 十六进制:%s" % (i, bin(i), oct(i),hex(i)))
print()

输出结果:

·相同数字串在各进制表示的数值(十进制表示)
原数字串(十进制):111 二进制:7 八进制:73 十六进制:273
改用eval函数
原数字串(十进制):111 二进制:7 八进制:73 十六进制:273

·相同十进制数值在各进制下的表示
原数(十进制):111 八进制:157 十六进制:6f
改用format方式
原数(十进制): 111 二进制:1101111 八进制:157 十六进制:6f
带前缀显示
原数(十进制):111 二进制:0b1101111 八进制:0o157 十六进制:0x6f

②浮点型

浮点型由整数部分与小数部分组成。

float型数字:0.0、15.2、-2.9、-32.5e10、32+e18。

浮点数可以用科学计算法表示:2.5e2 = 2.5 x 10^2 = 250

# 负数运算
#   / - 返回的是浮点数 // - 向下取整
print("【负数运算】")
print("-9/2 = %f" % (-9 / 2))
print("-9//2 = %f" % (-9 // 2))

结果:
【负数运算】
-9/2 = -4.500000
-9//2 = -5.000000


# 四舍五入
# 小数部分在中值0.5时向坐标中心取整
# 其余向上下两端靠拢
print("【四舍五入】")
print("round(12.1)",round(12.1))
print("round(12.5)",round(12.5))
print("round(12.8)",round(12.8))
print("round(-4.2)",round(-4.2))
print("round(-4.5)",round(-4.5))
print("round(-4.7)",round(-4.7))

结果:
【四舍五入】
round(12.1) 12
round(12.5) 12
round(12.8) 13
round(-4.2) -4
round(-4.5) -4
round(-4.7) -5

③布尔类型

在Python3中True=1,False=0,可以和数字型进行运算。

但是,数值不属于布尔型

# 以下两句输出结果均为false
print("1 is True : %s" % (1 is True))
print("0 is True : %s" % (0 is True))
print("type(1) : %s " % type(1))
print("type(True): %s" % type(True))
print()
输出结果:
1 is True : False
0 is True : False
type(1) : <class 'int'> 
type(True): <class 'bool'>

在分支语句(如if)判断时,非零即真

# 以下两句输出结果均为1
print("0 if 0 else 1,结果:%d" % (0 if 0 else 1))
print("1 if 1 else 0,结果:%d" % (1 if 1 else 0))
print()

输出结果:
0 if 0 else 1,结果:1
1 if 1 else 0,结果:1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值