【Python语言基础】04、Python数据类型

数据类型指的就是变量的值类型,也就是可以为变量赋哪些值。

1、数值

Python中数值分成三种:

1.1 整数

  1. Python中所有的整数都是int类型;
  2. Python中的整数大小没有限制,可以使无限大的整数;
  3. 如果数字的长度过大,可以使用下划线作为分隔符,如:C=123_456_789;
  4. 十进制的数字不能以0开头;
  5. 二进制以 0b 开头,如 a = 0b10 表示二进制中的10(一零),也就是十进制中的2;
  6. 八进制以 0o 开头;如 a = 0o10 表示八进制中的10(一零),也就是十进制中的8;
  7. 十六进制以 0x 开头,如 a = 0x10 表示十六进制中的10(一零),也就是十进制中的16;

只要是数字,打印输出的时候都是按照十进制输出

1.2 浮点数(小数)

  1. 在Python中所有的小数类型都是float类型
  2. 对浮点数进行运算时,可能会得到一个不精确的结果。

a=0.1 + 0.2
print(a),输出: a = 0.30000000000004

1.3 复数

复数是一种内置的数据类型,用于表示形如 a+bj 的复数, 其中 a 是实部,b 是虚部,j 是虚数单位(在数学中通常用 i 表示,但在 Python 中用 j)

1.3.1 创建方式
  1. 直接赋值。z = 3 + 4j
  2. 使用 complex() 函数:z = complex(3, 4) # 实部为 3,虚部为 4
  3. 从字符串解析:z = complex(“3+4j”)
1.3.2. 属性和方法
  1. 实部和虚部:
    z.real:获取复数的实部
    z.imag:获取复数的虚部

eg:z = 3 + 4j
print(z.real) # 输出 3.0
print(z.imag) # 输出 4.0

  1. 共轭复数:z.conjugate():返回复数的共轭复数

z = 3 + 4j
print(z.conjugate()) # 输出 (3-4j)

  1. 模(绝对值):可以通过 abs(z) 计算复数的模(平方和,再开方)

z = 3 + 4j print(abs(z))
输出 5.0

  1. 相位角(弧度):可以通过 cmath.phase(z) 计算复数的相位角

z = 3 + 4j
print(cmath.phase(z)) # 输出相位角(弧度)

1.3.3. 复数的运算

Python 支持复数的加、减、乘、除等基本运算:
z1 = 3 + 4j
z2 = 1 - 2j

加法
print(z1 + z2) # 输出 (4+2j)

减法
print(z1 - z2) # 输出 (2+6j)

乘法
print(z1* z2) # 输出 (11+2j)

除法
print(z1 / z2) # 输出 (-1+2j)

1.3.4. 使用 cmath 模块
import cmath

z = 3 + 4j

# 指数
print(cmath.exp(z))  # 输出 e^(3+4j)

# 对数
print(cmath.log(z))  # 输出复数的自然对数

# 三角函数
print(cmath.sin(z))  # 输出复数的正弦值
print(cmath.cos(z))  # 输出复数的余弦值

5. 注意事项

  1. 虚数单位:在 Python 中,虚数单位是 j,而不是数学中常用的 i。
  2. 复数的比较:复数之间不能直接进行大小比较(如 <、>),因为复数没有自然的大小顺序。
  3. 浮点数精度:复数的实部和虚部都是浮点数,因此可能会受到浮点数精度的影响

2、字符串

字符串用来表示一段文本信息,字符串是程序中使用最多的数据类型。

2.1. 字符串使用

  • 需要使用引号包起来,可以是 单引号 也可以是 双引号,但需要成对出现。
 eg:
 s = 'hello'';
 a = "world";
  • 相同引号之间不能嵌套,不同引号间可嵌套
eg:b ="他说:'我现在没有其他安排'";

2.2. 长字符串

1.单引号和双引号不能跨行使用,跨行使用可以使用 \ 代表换行,但是输出文本并不换行
2.三重引号表示一个长字符串(单引号、双引号都可以)


eg:s = ‘’’ 会当凌绝顶,
一览众山小’‘’;


输出结果为: 会当凌绝顶,一览众山小

2.3 转义字符

可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容

 \'   表示'
 \"   表示"
 \t   表示制表符
 \n   表示换行符
 \\   表示反斜杆
 \uxxxx   表示UniCode编码

s = " 子曰:\"学而时习之,不亦说乎\""; 
# 输出结果:子曰:"学而时习之,不亦说乎"

3、 格式化字符串

3.1 拼接

字符串之间加法运算,将字符串相加,则会将两个字符串拼接为一个字符串

a = ‘hello’;
print(“a=”+a);
输出 a=hello


但是这种用法在Python不常见,因为字符串只能与字符串进行加法运算

3.2 print()函数

使用print()传递两个参数

print(‘a=’,a);
结果:a=hello


常用这种输出方式

3.3 占位符

在创建字符串是,可以在字符串中指定占位符, %s 在字符串中表示任意字符串

b = ‘hello %s’;
print(b);


输出:hello %s

使用对象填充 %s,格式如下:

b = ‘hello %s’%‘world’;
print(b);


输出:hello world

a = ‘hello’
print(‘a= %s’%a);


输出结果:a=hello

填充多个 %s,使用括号将多个对象放一起,格式如下:

b = ‘hello %s 你好 %s’%(‘世界’,‘World’)
print(b);


输出:hello 世界 你好 world

限制填充 %s

b = ‘hello %3s’%‘w’;
表示%s填充的字符最少3位长度,不够的在前面补充空格


b = ‘hello %3.5s’%‘w’;
表示%s填充的字符最少3位长度,最多5个字符,不够的在前面补充空格

其它占位符

%f 表示浮点数占位符,%.2f 表示浮点数占位符,保留2位小数
%d 表示整数占位符


c = ‘hello %f’%123.1254
print(c)


输出:hello 123.1254

3.4 f、F 格式化

格式化字符串,可以通过在字符串前添加f创建一个格式化字符串(f、F都可以)

c = f’hello’;
print©;


输出:hello

在格式化字符串中可以直接嵌入变量

a = ‘世界’;
b = ‘World’;
c = f’hello {a} {b}';
print©;


输出:hello 世界 World

4、字符串复制

字符串的复制(将字符串和数字相乘)

a = ‘abc’;
a = a * 2;


print(a);


输出:abcabc

5、布尔值和空值

布尔值 (bool),主要用来做逻辑判断

布尔值有True、False两个值,True表示真,False表示假


布尔值实际也属于整型,True相当于1,Fasle相当于0


空值,None,专门用来表示不存在

6、类型检查

通过类型检查,可以检查指定变量值的类型

type() 用来检查值的类型,该函数会将检查结果作为返回值返回,可通过变量接受返回值


a = type(123);
print(a);


输出:<class ‘int’>

7、对象

7.1 对象介绍

python是一门面向对象的语言
程序运行中,所有数据存储在内存中然后再运行,对象就是内存中专门用来存储指定数据的一块区域。
对象实际上是一个容器,用来存储数据

7.2 对象结构

每个对象中都要存储三种数据

  • id(标识)
  1. 用来标识对象的唯一性,每一个对象都有唯一的Id。
  2. 可以通过id()函数查看id
  3. id是由解析器生成的,在CPython中id就是对象的内存地址
  4. 对象一旦创建,id不可再改变
  • type(类型)
  1. 用来表示当前对象所属类型
  2. 通过type()函数查看类型。eg:int、str、bool…
  3. 类型决定了对象具有哪些功能
  4. Python是强类型语言,对象一旦创建,类型不可修改
  • value (值)
  1. 值就是对象中存储的具体数据
  2. 有些对象的值可以改变
  3. 对象分为两大类:可变对象、不可变对象

8、变量和对象

  1. 对象并没有直接存储到变量中,变量相当于给特定的内存区域取了一个名字(见下图)

  2. 变量中存储的不是变量的值,而是对象的id(内存地址);当时使用变量时实际就是通过对象的id查找对象

  3. 变量中保存的对象,只有在为变量重新赋值时才会改变

  4. 变量之间相互独立

变量与对象

9、类型转换

  1. 类型转换定义:将一个类型对象转换为其他对象

  2. 类型转换不是改变对象本身的类型,而是根据当前对象的值转换为新对象

  3. 类型转换函数 int()、float()、str()、bool()

  • int()

int()将其他类型转换为整型


规则:
布尔值:True–> 1 False --> 0
浮点数:直接取整,省略小数位数
字符串:合法的整数字符串直接转换为对应的整数,不合法的则报错 ValueError
对于其它不能转化为整数的对象,直接抛出异常


a = True
a = int(a)
print(a)


输出:1

  • float()

float()将其他类型转换为浮点型
与int()基本一致,不同的是会向对象转化为浮点数

  • str()

str()将其他类型转换为字符串

  • bool()

bool()将其他类型转换为布尔值
任何对象都可以转为布尔值
规则:对于所有表示 空性 的对象都会转化为False,其余的转化为True
哪些表示空性:0,None,‘’ 等


a = ‘HELLO’;
print(bool(a));


输出:True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值