01-Python 中的数据类型-01-数字类型

01-Python 中的数据类型-01-数字类型

总体 要讲的大纲内容 如下

  • 数字类型- int float complex
  • 序列类型 - list tuple range
  • 集合类型 - set frozenset
  • 上下文管理器类型 - 比较复杂暂时 不用掌握
  • 文本序列类型
  • 二进制序列类型 bytes bytesarray memoryview
  • 真值检测
  • 比较运算符
  • 逻辑运算符
  • 如何判断 一个对象 是什么类型- type(xxx)

今天的内容比较多,这些内容几乎贯穿了python 的基础,所以 我第一篇 先从数据类型 开始讲起 。

首先 很多同学 可能疑问 为啥会有数据类型? 其实在人类 的世界中,人们也是有数据类型的,

比如 桌子 的高度,回答 80 cm ,90cm 等

今天天气是不是晴天? 回答 是或者不是

你的名字 是什么? 回答 Frank 等。

第一个 回答 就是 数字的一个类型,

第二个回答 就是 布尔类型,就是真 ,假。

第三个回答 就是一个名称 ,就是一个 字符串。

你看 ,我们很自然的就能用不同数据类型来回答生活中的问题 。 但是为啥 计算机里面单独要说数据类型呢? 其实是因为 计算机 太笨了,不告诉计算机这是什么类型,它就不知道怎么操作这个数据。 所以计算机需要知道是什么类型,知道了什么类型, 相对应的计算机就知道对这样的类型 有哪些操作

好了进入今天的话题, python 中的数据类型,在python中数据类型 有很多。每一种编程语言 对数据类型 定义有点区别,但大致都是一样的。 第一个类型 数字类型

数字类型

数字类型 包含 int float complex , int 就是整数 向 1,2,3,… 等 float 就是小数 3.4 , 5.67,8.9 ; complex 就是复数 ,这个就是高中所学的 复数类型 ,有实部和虚部 那种类型。

来看下如何定义这些和使用这些类型

height = 165

print(f"height = {height}")
print(f"type = {type(height)}")

01-Python 中的数据类型-01-数字类型

结果如下:

height = 165
type = <class 'int'>

这个时候点击 运行的小按钮,看结果出来, 第二行,可以看到是 int 类型

还有一点 要注意 python 写代码的时候 要注意缩进问题,一般来说,缩进是4个空格,当然编辑器pycharm 已经默认是这样子了,如果以后 写代码的时候 报错 类型

IndentationError: unexpected indent

这种错误就是 缩进有问题 的,要看下 代码是不是没有对齐?

好,现在 你知道如何查看一个 类型了吗? 就是 type(xxx) 然后打印出来 就可以了。

下面我可以演示 在 python Console 里面,这样比较方便 。

我今天 花了 19.5 毛钱 ,money 这个就是float 类型的。

>>> money = 19.5 
>>> type(money)
<class 'float'>

是不是很简单。

还有一种类型 complex , complex( 'a+bj') 这样就可以定义一个复数 其中a称为实部,b称为虚部,i 称为虚数单位。

>>> num = complex('1+2j')
>>> num
(1+2j)
>>> num.real
1.0
>>> num.imag
2.0

>>> type(num)
<class 'complex'>

也可以这样定义

>>> num = 2 + 3j
... print(num)
... print(type(num))
(2+3j)
<class 'complex'>

这样 也是可以的.

对于数字类型,int ,float 都有以下的操作 ,注意这里我用的词汇 操作 , 一般数字 就是 加减乘除,取余 ,几次方 等这些 运算操作 。

表 来自官方文档 docs

Operation Result Notes Full documentation
x + y sum of x and y
x - y difference of x and y
x * y product of x and y 乘法
x / y quotient of x and y 除法
x // y floored quotient of x and y (1)
x % y remainder of x / y (2)
-x x negated
+x x unchanged
abs(x) absolute value or magnitude of x abs()
int(x) x converted to integer 把一个数字变成int 类型 int()
float(x) x converted to floating point 把一个数字变成float float()
complex(re, im) a complex number with real part re, imaginary part im. im defaults to zero. (6) complex()
c.conjugate() conjugate of the complex number c
divmod(x, y) the pair (x // y, x % y) (2) divmod()
pow(x, y) x to the power y (5) pow()
x ** y x to the power y (5)

来让我们来看下

这些符号,大部分和我们使用计算器的符号一样,直接输入表达式就可以了,就可以得到结果,是不是很方便呢?

>>> num = 3
>>> num2 = 10 
>>> num +num2
13
>>> num - num2
-7
>>> num * num2
30
>>> num / num2
0.3
>>> num2/ num
3.3333333333333335
>>> num2// num
3

有几个 不是 太常用的 介绍一下

整除 操作 // 两左斜线 ,如果两个数相除 除不尽的情况, 比如 11 除以3 , 整除保留整数位,这里不是 四舍五入。

>>> 11/3
3.6666666666666665
>>> 11//3
3

取余操作 %, 除不尽的时候 余数是多少

>>> 11 %3
2

绝对值 abs() , 求一个数的绝对值

>>> abs(-4.7)
4.7
>>> abs(-9)
9
>>> abs(5)
5
>>> abs(4.7)
4.7

int 取整 ,把一个x 转成int 类型,如果是小数,直接保留整数部分。注意 这里 x 不一定是数字,可以是个字符串类型 ,只要可以转换 成数字 就行。 比如 ‘4’ 就可以转.

>>> int(4.7)
4
>>> int(-4.7)
-4
>>> int('4')
4

float 也是一样哦,把 一个数字转成 float 类型

>>> float('2.34543')
2.34543
>>> int('4')
4
>>> float('-2.34543')
-2.34543

这里 我要说一个情况 假设 我突然哪一天 想把 ‘love’ 转成 一个float 数字 会是 什么情况?来试一下

>>> float('love')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: could not convert string to float: 'love'

报错了,计算机都明白 ,爱情是不能用数字来衡量的。 爱情高尚,不能用计量单位衡量。 哈哈哈

开玩笑,这里为啥报错,其实报错信息 已经很清楚了, 就是不能将一个字符串’love’ 转成一个 float 类型,计算机无法做到。

就是说在使用 int (),float() 这些函数的时候,计算机 有可能会报错,这个时候就要多想想 计算机为啥不能处理这种情况。 刚刚说的报错,就是 编程语言中的异常,这个是一个比较大的话题,等有时间在聊这个吧。 现在就是知道计算机有可能会报错就可以了。

divmod(x,y) 这个函数 就是返回 两个值, x//y , x%y

第一个值 取整,第二值 取 余 的结果

>>> divmod(11,3)
(3, 2)
>>> divmod(10,2)
(5, 0)

这里要说下 , 其实这里 在编程中如何获取这两个值呢?

a, b = divmod(11, 3)

print(f"a={a},b={b}")

这样divmod 就会返回值,就分别赋值给 a,b . 这里其实返回的是一个元祖类型, 这个是python的数据类型, 类型 是 tuple 翻译成元祖,这个可以先那么了解之后会慢慢介绍。

>>> m =divmod(10,2)
>>> m
(5, 0)
>>> type(m)
<class 'tuple'>

pow 这个就是求 几次方

pow(a,b) 就是 a的 b 次方 ,

这个函数 和 a **b 是一个意思, a 的b 次方 所以 ** 在运算符里面就是次方的的意思

>>> pow(2,4)
16
>>> pow(3,3)
27
>>> pow(5,2)
25

>>> 2**4
16
>>> 3**3
27
>>> 5**2
25

下面一个是和复数相关的

conjugate() 共轭,共轭的,结合的,

这个方法就是求 一个复数的共轭复数

百度百科-共轭复数

>>> num1 = complex(2,3)
>>> num1
(2+3j)
>>> num2= complex(3,4)

>>> num1.conjugate()
(2-3j)
>>> num1
(2+3j)

>>> num2.conjugate()
(3-4j)
>>> num2
(3+4j)

总结

今天介绍了一些 数字类型,常用操作 。 一定要多去练习, 实践出真知。 里面可能有很多没有讲到的内容,可以看看官方文档,那里是比较全面的。 加油!

参考文档

doc python3

分享快乐,留住感动. 2020-03-15 10:31:29 --frank
上一篇:C++-类的操作符(+)重写


下一篇:原创 linux下c++ lesson12 运算符重载基础