Python基础教程(3)数据类型之数值int\float与逻辑运算

TangLu 未命名 2019-12-12 3773 0

一、Python数字类型介绍

在Python中将数字分为了整数、浮点数和布尔型类型。这些数字类型的数据可以通过运算符进行运算

1、整数类型(int)

正整数和负整数且不带小数点的数字为整数类型,比如100、-1。整型数据可参与运算,如果整数和浮点数进行运算,则会自动将结果转换为浮点类型

#整数的定义
num1 = 100
print (type(num1))

num2 = -15
print (type(num2))

#使用int函数创建整数
print (int())  #不传参时默认创建整数0
print (int(1)) #传递一个参数时,将该参数转换为整数
print (int('10',2)) #传递两个参数时,第一个参数必须是字符串,然后第二个参数指定进制,最终会按照指定的进制进行转换

a=3.14
int(a)  #将a转换为整数,即3,如果被转换的数据类型是字符串,那么字符串只能是纯数字,不能有小数点,否则转换会失败

#整数常用函数
print(max(2,4,6,8,10))        #从一组数据中获取最大数
print(min(2,4,6,8,10))        #从一组数据中获取最小数


2、浮点型(float)

有小数点的数据,如3.1415。计算机采用二进制存储浮点数,存在不精确性,对于浮点数的运算要尽量使用其它模块处理,比如decimal

#浮点数的定义
num1 = 3.14
print (type(num2))   #显示为float类型

#使用float函数创建整数
print (float())  #不传参时默认创建浮点数为0.0
print (int(1)) #传递一个参数时,将该参数转换为浮点数,这里为1.0

a=3
float(a)  #将a转换为浮点,即3.0

#浮点数常用函数
num = 3.1415926 
print(round(num,2))  #使用round函数可以获取指定长度的小数位,比如round(num,2)是四舍五入保留小数点后2位,round(num)则是保留整数位


3、布尔型(bool)

特殊的整型,只有True和False两种值(首字母必须是大写)。所有对象都有一个布尔值,其中数值0(仅仅数字0为False,负数也会为True)、None、空字符串、空列表、空元组、空集合、空字典的布尔值都为False。所有对象都可被直接用作布尔值


二、Python运算符

常见的运算符有标准算术运算符、取余运算符、比较运算符等。不同的运算符存在优先级的概念,算数运算符 > 比较运算符 > 等于运算符 > 逻辑运算符(not > and > or),有括号先算括号

运算符Python表达式结果描述支持数据类型
+[1,2] + [3,4][1,2,3,4]合并字符串、列表、元组
*['tanglu'] * 2['tanglu','tanglu']复制字符串、列表、元组
in3 in (1,2,3)True判断元素是否存在字符串、列表、元组、字典
not in4 not (1,2,3)True判断元素是否不存在字符串、列表、元组、字典


Python算术运算符示例

#算术运算符:加减乘除取余取模
print (3+5)
print (5-1)
print (3*4)
print (12/4)
print (10//3)   #整数除运算符,对结果取整,通常用于计算一个数字是另一个数字的多少倍,这里结果为3
print (13%4)   #取余,通常用于判断奇偶数或倍数,有余数的就是基数

#根据用户输入的时间转换为具体天数、小时数、分钟数和秒数
user_time = int(input("请输入一个需秒数,我将转换为X天X时X分X秒:"))
days = user_time // (60*60*24)
hours = (user_time % (60*60*24)) // (60*60)
minutes = (user_time % (60*60*24)) % (60*60) // 60
seconds = (user_time % (60*60*24)) % (60*60) % 60
print(f"经过转换,你输入的数字代表{days}天 {hours}小时 {minutes}分 {seconds}秒" )


Python比较运算符示例

#比较运算符:==、!=、>、<、>=、<=,is,返回结果为布尔值
print(a == b)   #==比较的是变量所引用对象的值,所以如果是比较值的话使用==就可以了,不用考虑is
print(a != b)
print(a is b)   #is比较的是对象内存地址是否相同

#逻辑运算符:and、or、not,运算顺序优先级是( ) > not > and > or
print (2>3 and 4<6)  #and需要所有条件为真,所以这里输出为False
print (10<6 or 9>7 or 5>9)  #有一个条件为真即为真,所以这里输出True


#身份运算符:is、is not,和==不同,它比较的是内存空间中的地址是否相等


Python成员运算符示例

#成员运算符:in、not in,判断一个元素是否在字符串或者列表中,返回结果为布尔值
info="Python是一门好语言"
result='语言' in info
print(result)
1 in [1,2,3,4]

Python运算符优先级示例

当出现第一个操作的值无法确定其运算结果时就会去计算第二个操作的值,比如and需要两者都为真,所以3 and 4 取值为4、0 and 1取值为0

Snipaste_2022-09-29_11-35-24.png


使用is和==进行比较时差别在于==进行的是相等性比较,is进行的是同一性比较。对于整数类型的数据来说如果对象值的范围为-5——256是会被缓存起来的,这时使用is比较的结果依然是一样的,而使用解释器进行比较的话,通常会被优化为-5——任意正整数;而对于字符串来说,如果多个变量的值相同,会将字符串保留一份驻留在内存中,使用is比较的结果是相同的。但是使用is去判断列表/字典/集合这些可变类型的数据时判断结果为False

企业微信截图_20211221174058.png

评论