文章目录
- 如何判断一个变量是什么类型?
- 1. 使用type()方法,返回变量的数据类型
- 2. isinstance(变量名称,数据类型),返回True或False
- 1. 整型(int)
- 1.1 整型的定义
- 1.2 不同进制的表示
- 1.3 整型的基本运算
- 2. 浮点型(float)
- 3. 布尔型(bool)
- 3.1 布尔型定义
- 3.2 布尔型运算
- 3.3 其他类型转换成bool类型
- 3.4 比较运算产生布尔值
- 4. 字符串类型(str)
- 4.1 字符串创建
- 4.2 字符串操作
- 4.2.1 字符串的拼接
- 4.2.2 字符串的切片
- 4.2.3 字符串的常用方法
- 4.2.4 字符串格式化
- 5. 列表(list)
- 5.1 列表的创建
- 5.2 列表操作
- 5.3 列表方法
- 6. 字典(dict)
- 6.1 字典常用方法
- 6.2 字典推导式
- 7. 元组(tuple)
- 7.1 元组常用方法
- 7.2 元组与列表的转换
- 8. 集合(set)
- 8.1 集合常用方法
- 8.2 集合推导式
- 8.3 集合的去重
- 9. 数据类型总结
- 10.Python提供了内置函数用于数据类型之间的转换
Python作为一门易学易用的编程语言,其丰富的数据类型为开发者提供了强大的工具。本文将详细介绍Python中8种核心数据类型,帮助初学者和有一定经验的开发者更好地理解和使用它们。
如何判断一个变量是什么类型?
1. 使用type()方法,返回变量的数据类型
示例:
n1 = 100
n2 = "200"
print(type(n1))
print(type(n2))
输出:

2. isinstance(变量名称,数据类型),返回True或False
示例:
n1 = 100
n2 = "200"
print(isinstance(n1, int))
print(isinstance(n1, str))
print(isinstance(n2, int))
print(isinstance(n2, str))
输出:

1. 整型(int)
整型是Python中最基本的数值类型,用于表示整数。
1.1 整型的定义
示例:
# 整型示例
age = 25
count = -10
big_number = 1000000
1.2 不同进制的表示
0b:表示二进制
0o:表示八进制
0x:表示十六进制
示例:
# 不同进制的表示
binary = 0b1010 # 二进制,等于10
octal = 0o12 # 八进制,等于10
hexadecimal = 0xA # 十六进制,等于10
1.3 整型的基本运算
除了常见的 加 + 、 减 - 、 乘 * 、 除 /
还有以下:
整除: //
取模:%
幂运算:**
示例:
# 基本运算
a = 10
b = 3
print(a + b) # 加法:13
print(a - b) # 减法:7
print(a * b) # 乘法:30
print(a / b) # 除法:3.333...
print(a // b) # 整除:3
print(a % b) # 取模:1
print(a ** b) # 幂运算:1000
2. 浮点型(float)
浮点型用于表示带有小数点的数值。
# 浮点型示例
pi = 3.14159
temperature = -5.7
scientific = 2.5e-3 # 科学计数法:0.0025
# 浮点数运算
x = 10.5
y = 3.2
print(x + y) # 13.7
print(x - y) # 7.3
print(x * y) # 33.6
print(x / y) # 3.28125
# 注意浮点数精度问题
result = 0.1 + 0.2
print(result) # 0.30000000000000004
print(result == 0.3) # False - 这能更直观地展示精度问题
# 使用round()函数控制精度
rounded = round(result, 2)
print(rounded) # 0.3
3. 布尔型(bool)
布尔类型只有两个值:True和False,用于逻辑判断。
3.1 布尔型定义
示例:
# 布尔类型示例
is_sunny = True
is_raining = False
3.2 布尔型运算
示例:
# 布尔运算
print(True and False) # False
print(True or False) # True
print(not True) # False
3.3 其他类型转换成bool类型
示例:
# 其他类型转换为布尔类型
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("Hello"))# True
print(bool([])) # False
print(bool([1, 2])) # True
3.4 比较运算产生布尔值
示例:
# 比较运算产生布尔值
a = 10
b = 20
print(a == b) # False
print(a != b) # True
print(a < b) # True
print(a >= b) # False
4. 字符串类型(str)
字符串用于表示文本数据,是不可变序列。
4.1 字符串创建
用英文的双引号" "或者单引号’ ’ 包裹,创建单行字符串。
也可以用英文三引号包裹,创建多行字符串。
示例:
# 字符串创建
name = "Alice"
greeting = 'Hello, World!'
multiline = """这是一个
多行字符串"""
4.2 字符串操作
4.2.1 字符串的拼接
使用“ + ”直接拼接两个字符串
# 字符串操作
s1 = "Hello"
s2 = "World"
print(s1 + " " + s2) # 拼接:Hello World
print(s1 * 3) # 重复:HelloHelloHello
print(len(s1)) # 长度:5
4.2.2 字符串的切片
** 序列名称[开始位置下标:结束位置下标:步⻓(步阶)] **
numstr = ‘0123456789’
numstr[0:3:1] # 012 => range⽅法⾮常类似,步⻓:每次前进1步
numstr[0:3:2] # 02 => 每次前进2步
步⻓可以为负数,正数代表从左向右截取,负数代表从右向左截取
# 字符串索引和切片
numstr = '0123456789'
# 1、从2到5开始切⽚,步⻓为1
print(numstr[2:5:1]) #234
print(numstr[2:5]) # 234
# 2、只有结尾的字符串切⽚:代表从索引为0开始,截取到索引为5的位置(不包含索引为5的数据)
print(numstr[:5]) # 01234
# 3、只有开头的字符串切⽚:代表从起始位置开始,已知截取到字符串的结尾
print(numstr[1:]) # 123456789
# 4、获取或拷⻉整个字符串
print(numstr[:]) # 0123456789
# 5、调整步阶:类似求偶数
print(numstr[::2]) # 02468
# 6、把步阶设置为负整数:类似字符串翻转
print(numstr[::-1]) # 9876543210
# 7、起始位置与结束位置都是负数
print(numstr[-4:-1]) # 678
# 8、结束字符为负数,如截取012345678
print(numstr[:-1]) # 012345678
4.2.3 字符串的常用方法
- strip():去除两端空格。
- lower():转为小写。
- upper():转化大写。
- replace(“old”,“new”):替换。
- split():分割,并返回列表,可以用下标调用。
示例:
# 常用字符串方法
sentence = " Hello, Python! "
print(sentence.strip()) # Hello, Python!
print(sentence.lower()) # hello, python!
print(sentence.upper()) # HELLO, PYTHON!
print(sentence.replace("Python", "World")) # Hello, World!
print(sentence.split(",")) # [' Hello', ' Python! ']
4.2.4 字符串格式化
- f 形式(Python3),推荐使用。
- format方法(Python3)。
- 百分号(Python2和Python3)。
示例:
# 字符串格式化
name = "Bob"
age = 25
# f-string (Python 3.6+)
print(f"{name} is {age} years old")
# format方法
print("{} is {} years old".format(name, age))
# %格式化
print("%s is %d years old" % (name, age))
5. 列表(list)
列表是有序、可变的容器,可以存储不同类型的元素。标识符:[ ]
5.1 列表的创建
# 列表创建
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True]
empty_list = []
nested_list = [[1, 2], [3, 4]]
5.2 列表操作
# 列表操作
fruits = ["apple", "banana", "cherry"]
print(len(fruits)) # 长度:3
print("apple" in fruits) # 成员检查:True
# 列表索引和切片
print(fruits[0]) # apple
print(fruits[-1]) # cherry
print(fruits[1:3]) # ['banana', 'cherry']
# 修改列表
fruits[1] = "blueberry" # 修改元素
fruits.append("orange") # 添加元素
fruits.insert(1, "grape")# 插入元素
fruits.remove("apple") # 删除元素
popped = fruits.pop() # 弹出最后一个元素
5.3 列表方法
# 列表方法
numbers = [3, 1, 4, 1, 5, 9, 2]
numbers.sort() # 排序
numbers.reverse() # 反转
print(numbers.count(1)) # 计数:2
print(numbers.index(4)) # 索引:2
# 列表推导式
# 生成一个包含0-9的平方数的列表
squares = [x**2 for x in range(10)]
# 等价于
# squares = []
# for x in range(10):
# squares.append(x**2)
# 生成一个包含0-9中偶数的平方数的列表
even_squares = [x**2 for x in range(10) if x % 2 == 0]
6. 字典(dict)
字典是无序的键值对集合,键必须是不可变类型。标识符:{ }
6.1 字典常用方法
# 字典创建
person = {"name": "Alice", "age": 30, "city": "New York"}
empty_dict = {}
dict_from_list = dict([("name", "Bob"), ("age", 25)])
# 访问字典元素
print(person["name"]) # Alice
print(person.get("age")) # 30
print(person.get("country", "USA")) # 如果键不存在,返回默认值:USA
# 修改字典
person["age"] = 31 # 修改值
person["country"] = "USA" # 添加新键值对
person.update({"city": "Boston", "job": "Engineer"}) # 批量更新
# 删除元素
del person["city"] # 删除键值对
age = person.pop("age") # 弹出指定键的值
# 字典方法
print(person.keys()) # 所有键
print(person.values()) # 所有值
print(person.items()) # 所有键值对
# 遍历字典
for key, value in person.items():
print(f"{key}: {value}")
6.2 字典推导式
# 字典推导式
squares = {x: x**2 for x in range(5)}
# 等价于
# squares = {}
# for x in range(5):
# squares[x] = x**2
7. 元组(tuple)
元组是有序、不可变的容器,通常用于存储相关数据的集合。标识符:( )
7.1 元组常用方法
# 元组创建
coordinates = (10, 20)
rgb = (255, 128, 0)
single_element = (5,) # 注意逗号,否则不是元组
mixed_tuple = (1, "hello", 3.14)
# 元组操作
print(coordinates[0]) # 10
print(coordinates[1]) # 20
print(len(coordinates)) # 长度:2
# 元组是不可变的
# coordinates[0] = 15 # 这会报错
# 元组解包
x, y = coordinates
print(x, y) # 10 20
# 元组方法
numbers = (1, 2, 3, 2, 4, 2)
print(numbers.count(2)) # 3
print(numbers.index(3)) # 2
7.2 元组与列表的转换
# 元组与列表的转换
my_list = [1, 2, 3]
my_tuple = tuple(my_list)
new_list = list(my_tuple)
8. 集合(set)
集合是无序、不重复元素的容器,支持数学集合运算。标识符:{ }
8.1 集合常用方法
# 集合创建
fruits = {"apple", "banana", "cherry"}
numbers = set([1, 2, 3, 4, 5])
empty_set = set() # 注意:{}创建的是空字典
# 集合操作
fruits.add("orange") # 添加元素
fruits.remove("banana") # 移除元素,如果不存在会报错
fruits.discard("grape") # 移除元素,如果不存在不会报错
# 集合运算
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 | set2) # 并集:{1, 2, 3, 4, 5, 6, 7, 8}
print(set1 & set2) # 交集:{4, 5}
print(set1 - set2) # 差集:{1, 2, 3}
print(set1 ^ set2) # 对称差集:{1, 2, 3, 6, 7, 8}
# 集合方法
print(len(set1)) # 长度
print(3 in set1) # 成员检查
8.2 集合推导式
# 集合推导式
# 创建一个集合,包含0-9中偶数的平方数
even_squares = {x**2 for x in range(10) if x % 2 == 0}
# 等价于
# even_squares = set()
# for x in range(10):
# if x % 2 == 0: # 只处理偶数
# even_squares.add(x**2)
8.3 集合的去重
# 去重功能
numbers = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
unique_numbers = set(numbers)
print(unique_numbers) # {1, 2, 3, 4}
9. 数据类型总结
| 数据类型 | 可变性 | 有序性 | 示例 |
|---|---|---|---|
| 整型(int) | 不可变 | 无 | 10,0,-5 |
| 浮点型(float) | 不可变 | 无 | 3.14,-2.5,0.0 |
| 布尔型(bool) | 不可变 | 无 | True,False |
| 字符串(str) | 不可变 | 有 | “hello”,‘world’ |
| 列表(list) | 可变 | 有 | [1,2,3],[‘a’,‘b’] |
| 字典(dict) | 可变 | 无(3.7+有序) | {‘key’:‘value’} |
| 元组(tuple) | 不可变 | 有 | (1,2),(‘a’,‘b’) |
| 集合(set) | 可变 | 无 | {1,2,3},{‘a’,‘b’} |
10.Python提供了内置函数用于数据类型之间的转换
# 类型转换示例
str_num = "123"
int_num = int(str_num) # 字符串转整型
float_num = float(str_num) # 字符串转浮点型
num = 456
str_from_num = str(num) # 数字转字符串
my_list = [1, 2, 3]
my_tuple = tuple(my_list) # 列表转元组
my_set = set(my_list) # 列表转集合
# 布尔转换
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("Hi")) # True
1万+

被折叠的 条评论
为什么被折叠?



