基本数据类型

目录

数字类型

字符串类型

布尔类型

数据类型转换


自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

在内存中存储的数据可以有多种类型。例如:一个人的姓名可以用字符型存储,年龄可以使用数值型存储,婚姻状况可以使用布尔型存储。这里的字符型、数值型、布尔型都是Python语言中提供的基本数据类型。下面将详细介绍基本数据类型。

数字类型

在生活中,经常使用数字记录比赛得分、公司的销售数据和网站的访问量等信息。在Python语言中,提供了数字类型用于保存这些数值,并且它们是不可改变的数据类型。如果修改数字类型变量的值,那么会先把该值存放到内存中,然后修改变量让其指向新的内存地址。

在Python语言中,数字类型主要包括整数、浮点数和复数。

(1)整数

整数用来表示整数数值,即没有小数部分的数值。在Python语言中,整数包括正整数、负整数和0,并且它的位数是任意的(当超过计算机自身的计算功能时,会自动转用高精度计算),如果要指定一个非常大的整数,只需要写出其所有位数即可。

整数类型包括十进制整数、八进制整数、十六进制整数和二进制整数。

1)十进制整数:十进制整数的表现形式大家都很熟悉。例如,下面的数值都是有效的十进制整数。

31415926535897932384626

6666666666666666666666666666666666666666666666666666666666666666666666666666

-2020

0

在IDLE中执行的结果如图19所示。

图19  有效的整数

说明:在Python 2.x中,如果输入的数比较大时,Python会自动在其后面加上字母L(也可能是小写字母l),例如,在Python 2.7.14中输入31415926535897932384626后的结果如图20所示。

图20  在Python 2.x中输入较大数时的效果

注意:不能以0作为十进制数的开头(0除外)。

2)八进制整数:由0~7组成,进位规则为“逢八进一”,并且以0o/0O开头的数,如0o123(转换成十进制数为83)、-0o123(转换成十进制数为-83)。

注意:在Python 3.x中,八进制数,必须以0o/0O开头。但在Python 2.x中,八进制数可以以0开头。

3)十六进制整数:由0~9,A~F组成,进位规则为“逢十六进一”,并且以0x/0X开头的数,如0x25(转换成十进制数为37)、0Xb01e(转换成十进制数为45086)。

注意:十六进制数必须以0X或0x开头。

4)二进制整数:由0和1两个数组成,进位规则是“逢二进一”,如101(转换成十制数后为5)、1010(转换成十进制数后为10)。

(2)浮点数

浮点数由整数部分和小数部分组成,主要用于处理包括小数的数,例如:1.414、0.5、-1.732、3.1415926535897932384626等。浮点数也可以使用科学计数法表示,例如,2.7e2、-3.14e5和6.16e-2等。

注意:在使用浮点数进行计算时,可能会出现小数位数不确定的情况。例如,计算0.1+0.1时,将得到想要的0.2,而计算0.1+0.2时,将得到0.30000000000000004(想要的结果为0.3),执行过程如下:

>>> 0.1+0.1

0.2

>>> 0.1+0.2

0.30000000000000004

对于这种情况,所有语言都存在这个问题,暂时忽略多余的小数位数即可。

  实例01  根据身高、体重计算BMI指数

在IDLE中创建一个名称为bmiexponent.py的文件,然后在该文件中定义两个变量:一个用于记录身高(单位:米),另一个用于记录体重(单位:千克),根据公式“BMI=体重/(身高×身高)”计算BMI指数,代码如下:

height = 1.70                            # 保存身高的变量,单位:米

print("您的身高:" + str(height))

weight = 48.5                         # 保存体重的变量,单位:千克

print("您的体重:" + str(weight))

bmi=weight/(height*height)               # 用于计算BMI指数,公式:BMI=体重/身高的平方

print("您的BMI指数为:"+str(bmi))        # 输出BMI指数

# 判断身材是否合理

if bmi<18.5:

    print("您的体重过轻 ~@_@~")

if bmi>=18.5 and bmi<24.9:

    print("正常范围,注意保持 (-_-)")

if bmi>=24.9 and bmi<29.9:

    print("您的体重过重 ~@_@~")

if bmi>=29.9:

    print("肥胖 ^@_@^")

说明:上面的代码只是为了展示浮点数的实际应用,涉及的源码按原样输出即可,其中,str() 函数用于将数值转换为字符串,if 语句用于进行条件判断。如需了解更多关于函数和条件判断的知识,请查阅后面的章节。

运行结果如图21所示。

图21  根据身高、体重计算BMI指数

(3)复数

Python中的复数与数学中的复数的形式完全一致,都是由实部和虚部组成,并且使用j或J表示虚部。当表示一个复数时,可以将其实部和虚部相加,例如,一个复数,实部为3.14,虚部为12.5j,则这个复数为3.14+12.5j。

字符串类型

字符串就是连续的字符序列,可以是计算机所能表示的一切字符的集合。在Python中,字符串属于不可变序列,通常使用单引号“' '”、双引号“" "”或者三引号“''' '''或""" """”括起来。这三种引号形式在语义上没有差别,只是在形式上有些差别。其中单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上。例如,定义3个字符串类型变量,并且应用print()函数输出,代码如下:

title = '我喜欢的名言警句'                              # 使用单引号,字符串内容必须在一行

mot_cn = "命运给予我们的不是失望之酒,而是机会之杯。"     # 使用双引号,字符串内容必须在一行

# 使用三引号,字符串内容可以分布在多行

mot_en = '''Our destiny offers not the cup of despair,

but the chance of opportunity.'''

print(title)

print(mot_cn)

print(mot_en)

执行结果所图22所示。

图22  使用3种形式定义字符串

注意:字符串开始和结尾使用的引号形式必须一致。另外当需要表示复杂的字符串时,还可以嵌套使用引号。例如,下面的字符串也都是合法的。

'在Python中也可以使用双引号(" ")定义字符串'

"'(・・)nnn'也是字符串"

"""'---' "_"***"""

图标 (35)

  实例02  输出007号坦克

在IDLE中创建一个名称为tank.py的文件,然后在该文件中,输出一个表示字符画的字符串,由于该字符画有多行,所以需要使用三引号作为字符串的定界符。具体代码如下:

print('''

                       ▶  学编程,你不是一个人在战斗~~

                       |                  

                __\--__|_

II=======OOOOO[/ ★007___|           

          _____\______|/-----.

        /___mingrisoft.com___|             

         \◎◎◎◎◎◎◎◎⊙/

           ~~~~~~~~~~~~~~~~

''')

运行结果如图23所示。

图23  输出007号坦克

Python中的字符串还支持转义字符。所谓转义字符是指使用反斜杠“\”对一些特殊字符进行转义。常用的转义字符如表2所示。

表2  常用的转义字符及其说明

转 义 字 符

说    明

\

续行符

\n

换行符

\0

\t

水平制表符,用于横向跳到下一制表位

\''

双引号

\'

单引号

\\

一个反斜杠

\f

换页

\0dd

八进制数,dd代表字符,如\012代表换行

\xhh

十六进制数,hh代表字符,如\x0a代表换行

注意:在字符串定界符引前的前面加上字母r(或R),那么该字符串将原样输出,其中的转义字符将不进行转义。例如,输出字符串“"失望之酒\x0a机会之杯"”将输出转义字符换行,而输出字符串“r"失望之酒\x0a机会之杯"”,则原样输出,执行结果如图24所示。

图24  转义和原样输出的对比

布尔类型

布尔类型主要用来表示真值或假值。在Python中,标识符True和False被解释为布尔值。另外,Python中的布尔值可以转化为数值,True表示1,False表示0。

说明:Python中的布尔类型的值可以进行数值运算,例如,“False + 1”的结果为1。但是不建议对布尔类型的值进行数值运算。

在Python中,所有的对象都可以进行真值测试。其中,只有下面列出的几种情况得到的值为假,其他对象在if或者while语句中都表现为真。

l  False或None。

l  数值中的零,包括0、0.0、虚数0。

l  空序列,包括字符串、空元组、空列表、空字典。

l  自定义对象的实例,该对象的__bool__方法返回False或者__len__方法返回0。

数据类型转换

Python是动态类型的语言(也称为弱类型语言),不需要像Java或者C语言一样在使用变量前声明变量的类型。虽然Python不需要先声明变量的类型,但有时仍然需要用到类型转换。例如,在实例01中,要想通过一个print()函数输出提示文字“您的身高:”和浮点型变量height的值,就需要将浮点型变量height转换为字符串,否则将显示如图25所示的错误。

图25  字符串和浮点型变量连接时出错

在Python中,提供了如表3所示的函数进行数据类型的转换。

表3  常用类型转换函数及其作用

函    数

作    用

int(x)

将x转换成整数类型

float(x)

将x转换成浮点数类型

complex(real [,imag])

创建一个复数

str(x)

将x转换为字符串

repr(x)

将x转换为表达式字符串

eval(str)

计算在字符串中的有效Python表达式,并返回一个对象

chr(x)

将整数x转换为一个字符

ord(x)

将一个字符x转换为它对应的整数值

hex(x)

将一个整数x转换为一个十六进制字符串

oct(x)

将一个整数x转换为一个八进制的字符串

场景模拟:假设某超市因为找零麻烦,特设抹零行为。现编写一段Python代码,实现模拟超市的这种带抹零的结账行为。

图标 (35)

  实例03  模拟超市抹零结账行为

在IDLE中创建一个名称为erase_zero.py的文件,然后在该文件中,首先将各个商品金额累加,计算出商品总金额,并转换为字符串输出,然后再应用int()函数将浮点型的变量转换为整型,从而实现抹零,并转换为字符串输出。关键代码如下:

money_all = 56.75 + 72.91 + 88.50 + 26.37 + 68.51     # 累加总计金额

money_all_str = str(money_all)                          # 转换为字符串

print("商品总金额为:" + money_all_str)

money_real = int(money_all)                             # 进行抹零处理

money_real_str = str(money_real)                        # 转换为字符串

print("实收金额为:" + money_real_str)

运行结果如图26所示。

图26  模拟超市抹零结账行为

常见错误:在进行数据类型转换时,如果把一个非数字字符串转换为整型,将产生如图27所示的错误。

图27  将非数字字符串转换为整型产生的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子味冰可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值