python基础-基本数据类型(一)
一、什么是数据类型
编程语言通过计算机的一些物理底层机制创造出不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算。
python中常见的数据类型有:
1、数值类型
| 名称 | 描述 |
| int(整型) | 数学概念中的整数 |
| float(浮点型) | 数学概念中的实数 |
| complex(复数) | 数学概念中的复数 |
2、序列类型
| 名称 | 描述 |
| str(字符串) | 字符串是字符的序列表示,用来表示文本信息 |
| list(列表) | 列表用来表示有序的可变元素集合。例如表示一个有序的数据组 |
| tuple(元组) | 元组用来表示有序的不可变元素集合 |
3、散列类型
| 名称 | 描述 |
| set(集合) | 数学概念中的集合,无限不重复元素的集合 |
| dict(字典) | 字典是无序键值对的集合。用来表示有关联的数据。例如表示一个人的信息。 |
4、其他类型
| 名称 | 描述 |
| bool(布尔型) | 布尔型元素只有两个元素,True表示真,False表示假。用来表示条件判断结果。 |
| None | None表示空。 |
一、数值类型
1、整数 int
1.1 变量
给值取个别名,通过这个别名就能找到这个值。
age = 25
print(age)
将25取名为age,直接输出age的值
变量的命名规则:
1.由大小写字母,数字与下划线_组成
2.不能以数字开头
3.变量区别大小写,同一字母大小写不同,变量不同
4.不能是关键字
符号一定是英文
python中常用的关键字
import keyword print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally',
'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
1.2 赋值运算符
= 是赋值运算符,python解释器会先计算=右边的表达式,然后将结果赋值给=左边的变量
1.3 type 函数和 print 函数
python 提供了内建函数 type 用来查看值或者变量的类型。
只需要将变量或者值作为参数传入 type 函数即可。
type(age)
运行结果
int
type(18)
运行结果:
int
print 函数用来在屏幕上输出传入的数据的字符串表现形式,是代码调试最重要的函数。
print(age) print(type(age)) # 注意交互式输出和print函数输出的区别
运行结果:
18
<class 'int'>
1.4 整数的常见表示形式
在 python 中整数最常见的是 10 进制整数,也有二进制,八进制和十六进制。
a = 10 # 十进制 print('a的类型为:', type(a), a)
a 的类型为: <class 'int'> 10
b = 0b1110 # 二进制 print('b的类型为:', type(b),b)
b 的类型为: <class 'int'> 14
c = 0o57 # 八进制 print('c的类型为:', type(c),c)
c 的类型为: <class 'int'> 47
d = 0xa5c # 十六进制 print('d的类型为:', type(d), d)
d 的类型为: <class 'int'> 2652
1.5 整数的取值范围
python 中整数类型的理论取值范围是[-无穷,无穷],实际取值范围受限于运行 python 程序的计算机内存大小。
2. 浮点数类型(float)
python 中浮点数数用 float 表示,与数学中的实数概念一致,也可以理解为有小数。
a = 0.0 print('a的类型为:', type(a))
a 的类型为: <class 'float'>
2.1 浮点数的表现形式
在 python 中浮点数可以表示为 a.b 的格式,也可以表示为小写或大写 E 的科学计算法。例如:
a = 0.0 print('a的类型为:', type(a))
a 的类型为: <class 'float'>
# 小数部分为零可以省略不写 b = 76. print('b的类型为:', type(b))
b 的类型为: <class 'float'>
c = -3.1415926 print('c的类型为:', type(c))
c 的类型为: <class 'float'>
d = 9.5e-2 print('d的类型为:', type(d))
d 的类型为: <class 'float'>
思考:
浮点数可以表示所有的整数数值,python 为何要同时提供两种数据类型?
相同的操作整数要比浮点数快5-20倍
2.2 数学运算符
与数学中的常用运算符一致
| 运算符 | 描述 |
|---|---|
+ |
加法运算符 1+1 |
- |
减法运算符 3-2 |
* |
乘法运算符 9*9 |
/ |
除法运算符 9/3,除法运算后的结果一定为 float 类型 |
// |
整除运算符 10/3,也称为 地板除 向下取整 |
% |
取模运算符 10%3,表示 10 除以 3 取余数 |
** |
幂次运算符 2**3,表示 2 的 3 次幂 |
() |
括号运算符,括号内的表达式先运算 (1+2)* 3 |
注意一个浮点数和一个整数进行运算后的结果一定为浮点数
2+1.0
3.0
9/3 # 除法运算的结果一定为float类型
3.0
9//2 # 地板除,向下取整
4
2.3 组合赋值运算符
赋值运算符与算术运算符可以组合使用,注意算术运算符要写在前面且中间不能有空格。
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 等于-简单的赋值 | c = a + b print(c) # 30 |
| += | 加等于 | c += a 等同于 c = c + a |
| -= | 减等于 | c -= a 等同于 c = c - a |
| *= | 乘等于 | c *= a 等同于 c = c * a |
| /= | 除等于 | c /= a 等同于 c = c/a |
| %= | 取余等于 | c%=a 等同于 c = c%a |
| **= | 幂等于 | c ** =a 等同于 c = c ** a |
| //= | 取整除等于 | c//=a 等同于 c = c//a |
体现了程序员的"懒惰",这种懒惰大力提倡,使得代码简洁和高效。
a = 1 a += 2 # a = a+2 a
3
4. 浮点数的不精确性
整数和浮点数在计算机中的表示不同,python 提供无限制且准确的整数计算,浮点数却是不精确的,例如:
0.2+0.1
0.30000000000000004
根据 sys.float_info.dig 的值,计算机只能提供 15 个数字的准确性。浮点数在超过 15 位数字计算中产生的误差与计算机内部采用二进制运算有关。
import sys print(sys.float_info.dig)
15
思考:
3.1415926535897924*1.23456789 的计算怎么准确
拓展:高精度浮点运算类型
import decimal a = decimal.Decimal('3.141952653') b = decimal.Decimal('1.23456789') print(a * b)
3.87895385729411217
2.5 浮点数和整数的相互转化
int,float 是 python 的内置函数,通过它们可以对浮点数类型和整数类型相互转化
a = 1.9 # 转化为整数 # 通过调用int函数,提取浮点数的整数部分 b = int(a) print(b, type(b))
1 <class 'int'>
c = 2 # 转化为浮点数 # 通过调用float函数,将整数转化为小数部分为0的浮点数 d = float(c) print(d, type(d))
2.0 <class 'float'>
3.复数
科学计算中的复数。
a = 12.3+4j print('a的类型为:', type(a)) # 运行结果:a的类型为: <class 'complex'> print(a.real) print(a.imag)
a 的类型为: <class 'complex'>
12.3
4.0
python基础-基本数据类型(一)的更多相关文章
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
- 第二章:python基础,数据类型
"""第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- python基础一数据类型之集合
摘要: python基础一中介绍数据类型的时候有集合,所以这篇主要讲集合. 1,集合的定义 2,集合的功能 3,集合的方法 1,集合的定义 list1 = [1,4,5,7,3,6,7,9] set1 ...
- python基础一数据类型之元祖
摘要: python基础一中写到数据类型元祖,那么这篇主要讲元祖. 1,元祖定义 tuple1 = (1,2,'a','b') 元祖是不可变数据,所以又名只读列表.那么如何让是元祖可变呢?可以在元祖中 ...
- python基础一数据类型之列表
摘要: python基础一中写到列表,那么这篇主要讲列表. 1,定义列表 2,列表.元祖.字符串都属于序列,都可以用用索引和切片. 3,列表的方法 1,定义列表 list1 = ['a','b',1, ...
- Python基础一数据类型之数字类型
摘要: python基础一中提到了数据类型,这里主要讲解的是数字类型. 数字类型: 1,整型 2,长整型 3,浮点型 4,复数型 1,整型(int) 定义a = 1 通过type函数查看数据类型,整型 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- Python学习day04 - Python基础(2)数据类型基础
<!doctype html>day04 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...
随机推荐
- bzoj5130 字符串的周期(kmp,最小表示法)
bzoj5130 字符串的周期(kmp,最小表示法) bzoj 题解时间 m很大,n很小. 周期很容易求,就是kmp之后n-fail[n]. 之后对于枚举所有的字符串用最小表示法,暴力搜索. 能过就完 ...
- jdr挖的大坑
计数问题小结 很多计数问题在直接拆分计算贡献时都会出现不容易直接表示的情况.在解决这些问题时,往往需要解决一些子问题方案数的递推, 再套用组合数或者分块计算来降低难度或时间复杂度,这里给出几种递推方法 ...
- zookeeper从小白到精通
目录 1.介绍 1.1概念 1.2特点 1.3主要的集群步骤 1.4数据结构 1.5应用场景 2.本地安装 2.1安装jdk 2.2下载安装 2.3配置文件修改 2.4启动服务端 2.5启动客户端 2 ...
- 小白都能看懂的 Spring 源码揭秘之Spring MVC
目录 前言 Spring MVC 请求流程 Spring MVC 两大阶段 初始化 HttpServletBean#init() FrameworkServlet#initServletBean Fr ...
- Mysql之B+树索引实战
索引代价 空间上的代价 一个索引都对应一棵B+树,树中每一个节点都是一个数据页,一个页默认会占用16KB的存储空间,所以一个索引也是会占用磁盘空间的. 时间上的代价 索引是对数据的排序,那么当对表中的 ...
- grep 命令?
强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索.grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格, ...
- pg数据库排序和limit同时使用遇到的奇怪问题
这两天由于一位实习生同事回学校答辩,因此我来跟进他之前开发的功能进行测试,测试反馈上来这么一个问题: 也就是说下面这两条sql查询出来的数据前10条的数据不一样. select * from tabl ...
- python中一切皆对象的理解
一切皆对象? 学过Java都知道,Java中有8个基本类型,其余的都是继承自Object类的引用类型.方法内的基本类型变量会在栈上分配,而引用类型会通过逃逸分析来决定在栈上分配或堆上分配.Java中关 ...
- 安装Yarn
安装Yarn Yarn是比npm更高效.快速的包管理器工具,它支持并行下载程序包,并且简化了包管理的复杂度. 使用npm安装yarn,命令npm install -g yarn. 安装后,使用yarn ...
- TTL 机制排毒,线上k8s的Job已经通过API 增加了Job的TTL 时长,且成功响应,为什么系统还是清理了Job?
TTL 机制排毒,线上k8s的Job已经通过API 增加了Job的TTL 时长,且成功响应,为什么系统还是清理了Job? 面试官:"已完成 Job 的 TTL 机制了解嘛?简单说说TTL存在 ...