AI学习之Python基础3: 数值类型和数据类型转换

(一)整数类型

整数关型:表示的数值是没有小数部分的数值,包含正整数、负整数和0

print('-------整数型---------')
# 整数可以表示为二进制,十进制,八进制,十六进制
print('十进制:', 118)  # 十进制(结果为118)
print('二进制:', 0b1110110)  # 二进制以0b开头(结果为118)
print('八进制:', 0o166)  # 八进制以0o开头(结果为118)
print('十六进制:', 0x76)  # 十六进制以0x开头(结果为118)

(二)浮点数类型

*浮点数类型*:**表示带有小数点的数值,由整数部分和小数部分组成

注意事项:两个浮点类型的数在进行运算时,有一定的概率运算结果后增加一些“不确定的”尾数

Python中的复数与数学中的复数形式完全一致,由实部虚部组成

在Python中实数部分使用**.real表示,虚数部分使用.imag**表示

print('-------浮点型---------')
height = 178.6
high = 10
print(height)
print(type(height))
print(high)
print(type(high))

X = 1.99E1413  # 带有E的科学计数法
print(X)  # (结果为inf)
print(type(X))  # (结果为<class 'float'>)

print(0.1 + 0.2)  # 不确定的尾数问题,结果为0.300000000000000Q4
print(round(0.1 + 0.2, 1))  # round函数,可以设置为保留一位小数,结果为0.3

n1 = 1.1
n2 = 2.2
print(n1 + n2)
# 因为浮点数值直接相加会存在不稳定,需要用到Decimal方法

from decimal import Decimal

a = Decimal('1.1')
b = Decimal('2.2')
print(a + b)  # 结果为3.3
print(Decimal(n1) + Decimal(n2))  # 结果为3.3.300000000000000266453525910,因为n1和n2是浮点,所以结果还是浮点
print(Decimal('1.1') + Decimal('2.2'))  # 结果为3.3,因为Decimal转化的是字符串
print(Decimal(a) + Decimal(b))  # 结果为3.3

print('-------复数类型的使用---------')
x=123+456j
print('实数部分:',x.real)# (结果为123.0)
print('虚数部分:',x.imag)# (结果为456.0)

(三)字符串类型

  • 字符串类型连续的字符序列,可以表示计算机所能识别的一切字符
  • 字符串的界定符:单引号、双引号、三引号

  • 原字符:使转义字符失效的字符,r或R
  • 字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引
print('---------------------字符串类型-----------------------')
# 单引号和双引号定义的字符串必须在同一行
# 三引号定义的字符串可以分布在连续的多行。可用三个单引号和三个双引号
str1 = '人生苦短,我用python'
str2 = "人生苦短,我用python"
str3 = """人生苦短,我用python"""
str4 = """人生苦短,
我用python"""

print(str1)  # (结果为人生苦短,我用python)
print(str2)  # (结果为人生苦短,我用python)
print(str3)  # (结果为人生苦短,我用python)
print(str4)  # (结果为人生苦短,
#  我用python)

print('-----------转义字符--------------')
# \n换行
# \t 一个制表位8个字符,剩下补充空格。用8去减余多少就要空多少个空格。
print('hello\nworld')  # \n后面的内容开始换行
print('hello\tworld')  # 这里5位,所以这里空了3个空格(hello  world)
print('hello6\tworld')  # 这里6个,所以这里空了2个空格 (hello6  world)
print('hello67\tworld')  # 这里7个,所以这里空了1个空格(hello67 world)
print('hello678\tworld')  # 这里8个,余0,因为到下一个制表位,空4个(hello678   world)
print('hello678world')  # 这里8个,余0,因为到下一个制表位,world是5个字符,所以空3个空格(hello678   world)
print('1234\tworld')  # 因为前面刚好4位,所以空4个空格(1234    world)
print('hello\rworld')  # 覆盖world前面的内容(world)
print('hello\bworld')  # 往左移动一位,覆盖那一位(hellworld)

print('-------------特殊性----------------')
print('http:\\ww.baidu.com')  # \\会有一个\被转义(结果为http:\ww.baidu.com)
print('http:\\\\ww.baidu.com')  # \\会有一个\被转义,所以只能四个\才能会显示\\(结果为http:\\ww.baidu.com)
print('老师说:\'大家好\'')  # 因为'号会被认为是字符串号,需要\来转义,否则会报错(结果为老师说:'大家好')

# 原字符,不希望字符串中的转义字符起作用,就是用原字符,就是在字符串之前加上r或者R
# 注意:最后一个字符不能是反斜杆\,否则报错
print(r'hello\nworld')  # (结果为hello\nworld)

(四)布尔类型

用来表示“”值或“”值的数据类型。

在Python中使用标识符TrueFalse表示布尔类型的值

True表示整数1False表示整数0

布尔值为False的情况如下

  • False 或者是None
  • 数值中的0,包含0,0.0,虚数0
  • 空序列,包含空字符串、空元组、空列表、空字典、空集合
  • 自定义对象的实例,该对象的_bool_()方法返回False或_len_()方法返回0
print('---------------------布尔类型-----------------------')
f6 = True
f7 = False
print(float(f6))  # bool类型转float类型数据,可以正常转换,true为1.0(结果为1.0)
print(float(f7))  # bool类型转float类型数据,可以正常转换,false为0.0(结果为0.0)
print(int(f6))  # bool类型转float类型数据,可以正常转换,false为1(结果为1)
print(int(f7))  # bool类型转float类型数据,可以正常转换,false为0(结果为0)

print(bool(18))  # 非0的布尔值都为True(结果为True)
print(bool(0))  # (结果为False)
print(bool(0.0))  # (结果为False)

print(bool(False))  # (结果为False)

print(bool(None))  # (结果为False)
print(bool(''))  # (结果为False)
print(bool([]))  # 空列表(结果为False)
print(bool(list()))  # 空列表(结果为False)
print(bool(()))  # 空元组(结果为False)
print(bool(tuple()))  # 空元组(结果为False)
print(bool({}))  # 空字典(结果为False)
print(bool(dict()))  # 空字典(结果为False)

(五)数据类型转换

分为隐式转换和显示转换

print('---------------------数据类型转换-----------------------')
x = 10
y = 3
z = x / y
print(z, type(z))  # 隐式转换,通过运算隐式的转了结果的类型(结果为3.3333333333333335 <class 'float'>)

# float类型转成int类型,只保留整数部分
print('float类型转成int类型:', int(3.14))  # (结果为3)
print('float类型转成int类型:', int(3.9))  # (结果为3)
print('float类型转成int类型:', int(-3.14))  # (结果为-3)
print('float类型转成int类型:', int(-3.9))  # (结果为-3)

# 将int转成float类型
print('将int转成float类型:', float(10))  # (结果为10.0)
# 将str转成int类型
print(int('100') + int('200'))  # (结果为300)
# 将字符串转成int或float时报错的情况
# print(int('18a'))# 报错
# print(int('3.14'))# 报错,即使为浮点数值的字符串

# chr() ord()一对
print(ord('杨'))  # 杨在unicode表中对应的整数值 (结果为26472)
print((chr(26472)))  # 26472整数在unicode表中对应的字符是什么(结果为杨)

# 进制之间的转换操作,十进制与其它进制之间的转换
print('十进制转成十六进制:', hex(26472))#(结果为十进制转成十六进制: 0x6768)
print('十进制转成八进制:', oct(26472))#(结果为十进制转成八进制: 0o63550)
print('十进制转成二进制:', bin(26472))#(结果为十进制转成二进制: 0b110011101101000)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值