002_python3 基本数据类型

1. 变量

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

"类型"是变量所指的内存中对象的类型

等号(=)用来给变量赋值。

2.多个变量赋值,同时赋值

a = b = c = 1
a,b,c = 1,2,"runoob"
a = 3;b = 4.2;c = 5 + 5j

3.标准数据类型

 Python3中常见的数据类型:

  • Number(数字)
  • String(字符串)
  • bool(布尔类型)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组)

可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)

此外还有一些高级的数据类型,如: 字节数组类型(bytes)

 4.Number(数字)

Python3支持 int、float、bool、complex(复数);整数类型 int,表示为长整型

内置的 type() 函数可以用来查询变量所指的对象类型 。 

a = 2.2

print(type(a))

用isinstance来判断 isinstance(a,int)  ,得出 True 或 False

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。
class A:
    pass
class B(A):
    pass
print(isinstance(A(), A)) # True
print(type(A())==A) # True
print(type(B())==A) # False
print(issubclass(B,A)) # True

Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。

在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。

使用del语句删除一些对象引用.

del语句的语法是:

var1 = [2,3,5,True]

del var1[1:2]  # 索引1:2

5.数值运算

+、-、*、/、//(整除)、%(取余)、**(乘方)

混合计算时,Python会把整型转换成为浮点数;

Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型

6.String(字符串)

字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符

字符串的截取的语法格式如下:

变量[头下标:尾下标]  # 索引值0开始,不含 尾标值 ;-1 为从末尾的开始位置

varstr = 'hello'
print(varstr[0:2]  # he

加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,与之结合的数字为复制的次数

varstr * 2 

varstr + 'hel'

Python 没有单独的字符类型,一个字符就是长度为1的字符串 ; 字符串不能被改变。

7.bool(布尔类型)

布尔类型即 True 或 False

bool 是 int 的子类,因此布尔值可以被看作整数来使用,其中 True 等价于 1 ;布尔类型可以和其他数据类型进行比较,在比较时,Python 会将 True 视为 1,False 视为 0。

布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not ;生成一个新的布尔值

布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0

使用 bool() 函数将其他类型的值转换为布尔值。以下值在转换为布尔值时为 FalseNoneFalse、零 (00.00j)、空序列(如 ''()[])和空映射(如 {})。其他所有值转换为布尔值时均为 True

(在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性。)

8.List(列表)

列表中元素的类型可以不相同,(数字、字符串、列表等),用逗号隔开,方括号[] 标记

列表截取的语法格式如下:

变量[头下标:尾下标]  #索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 + 是列表连接运算符,星号 * 是重复操作

varlist = [1,34,'hl',3,3.4]
print(varlist[-3:-1:2])  # -3 开始索引,-1 结束索引,2 步长,不写默认步长为1
print(varlist+[2])
print(varlist*2)

List 内置了有很多方法,例如 append()、pop() ,可改变列表

inputWords = inputWords[-1::-1]
# 重新组合字符串
output = ' '.join(inputWords) # 空格作为分隔符

9.Tuple(元组)

元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开,元素类型不相同 ; 元组里面包含list 可以做到可变

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )

被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取 ,可以把字符串看作一种特殊的元组

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号,Python会将括号解释为数学运算中的括号,而不是元组的表示

元组也可以使用 + 操作符进行拼接

10.Set(集合)

一种无序、可变的数据类型,用于存储唯一的元素,不会重复,可进行交并差集合操作,使用大括号{},逗号隔开

set() 函数创建集合,创建空集合只能用set() ,不能使用{ } --这个是创建一个空字典

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

sites = set('Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu') 

-、|、&、^   差、并、交、不同时存在的元素

11.Dictionary(字典)

列表有序、集合、字典无序;字典当中的元素是通过键来存取的;映射类型 ,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合;键(key)必须使用不可变类型且key唯一

 

dict = {}
dict[2] = "2 - 菜鸟工具"
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}

构造函数 dict() 可以直接从键值对序列中构建字典

dict(Runoob=1, Google=2, Taobao=3)

内置函数: clear()、keys()、values()

12.bytes 类型

bytes 类型表示的是不可变的二进制序列(byte sequence),bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。

处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。

创建 bytes 对象的方式有多种,最常见的方式是使用 b 前缀;可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型

x = b"hello"
bytes("hello", encoding="utf-8") #第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码

切片、拼接、查找、替换

 bytes 类型是不可变的

bytes 类型中的元素是整数值,因此在进行比较操作时需要使用相应的整数 (ord() 函数用于将字符转换为相应的整数值)

x = b"hello"
if x[0] == ord("h"):
    print("The first element is 'h'")

13.Python数据类型转换

函数描述

int(x [,base])

将x转换为一个整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

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

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个 (key, value)元组序列。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

ord(x)

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

hex(x)

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

oct(x)

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

 数据类型转换:

隐式类型转换--自动完成

显式类型转换--需要使用类型函数来转换

13.1 隐式转换

较小的数据类型转换为较大的数据类型,int + float 变成 float

13.2 显示转换

int()、float()、str() 等预定义函数来执行显式类型转换;使用内置函数进行转换

 

posted @   Shirley_Blogs  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示