网站如何引导,和国外做贸易用什么网站,杭州短视频培训学校,陕西建设厅网站人才库理解#xff0c;我将提供更详细和深入的解释#xff0c;包括一些进阶概念和实际应用的例子。我们将从变量类型开始#xff0c;逐步深入到每种数据类型的特性、操作方法以及它们在编程中的应用场景。 文章目录 1. 变量赋值与作用域变量赋值变量作用域 2. 标准数据类型Number…理解我将提供更详细和深入的解释包括一些进阶概念和实际应用的例子。我们将从变量类型开始逐步深入到每种数据类型的特性、操作方法以及它们在编程中的应用场景。 文章目录 1. 变量赋值与作用域变量赋值变量作用域 2. 标准数据类型Numbers数字整数 (int)浮点数 (float)复数 (complex) String字符串基本操作字符串方法字符串格式化 List列表基本操作列表方法 Tuple元组基本操作元组方法 Dictionary字典基本操作字典方法 3. 数据类型转换基本数据类型转换复杂数据类型转换数字系统转换 4. 进阶概念不可变 vs 可变类型内存管理和垃圾回收类型提示Type Hints 总结 1. 变量赋值与作用域
变量赋值
Python 中的变量赋值非常灵活支持多种赋值方式
单个变量赋值最简单的形式。多个变量赋值可以同时给多个变量赋相同的值或不同的值。解包赋值可以从序列中直接解包赋值给多个变量。
# 单个变量赋值
x 10# 多个变量赋值
a b c 1
p, q, r apple, banana, cherry# 解包赋值
coordinates (3, 4)
x, y coordinates变量作用域
Python 中的变量作用域分为全局作用域global和局部作用域local。函数内部定义的变量默认为局部变量而函数外部定义的变量为全局变量。可以使用 global 关键字在函数内部访问和修改全局变量。
# 全局变量
global_var I am globaldef my_function():# 局部变量local_var I am localprint(local_var)def modify_global():global global_varglobal_var Modified by functionprint(global_var) # 输出: I am global
my_function() # 输出: I am local
modify_global()
print(global_var) # 输出: Modified by function2. 标准数据类型
Numbers数字
整数 (int)
整数是没有小数部分的数值。Python 3 中的整数没有大小限制取决于可用的内存。
# 整数
x 42
y -1000
z 0x1A # 十六进制表示
w 0o755 # 八进制表示
v 0b1101 # 二进制表示print(x, y, z, w, v) # 输出: 42 -1000 26 493 13浮点数 (float)
浮点数是带有小数部分的数值通常用于表示实数。
# 浮点数
pi 3.14159
e 2.71828
inf float(inf) # 正无穷大
ninf float(-inf) # 负无穷大
nan float(nan) # 非数字print(pi, e, inf, ninf, nan) # 输出: 3.14159 2.71828 inf -inf nan复数 (complex)
复数由实部和虚部组成可以用 a bj 或 complex(a, b) 表示。
# 复数
c 3 4j
d complex(1, 2)print(c, d) # 输出: (34j) (12j)
print(c.real, c.imag) # 输出: 3.0 4.0String字符串
字符串是由字符组成的不可变序列。Python 支持多种字符串操作如切片、拼接、格式化等。
基本操作
创建字符串可以用单引号、双引号或三引号。字符串切片使用 [start:end:step] 语法。字符串拼接使用 操作符。字符串重复使用 * 操作符。
# 创建字符串
s1 Hello
s2 World
s3 This is a
multi-line string# 字符串切片
s Python
print(s[0]) # 输出: P
print(s[1:4]) # 输出: yth
print(s[-3:]) # 输出: hon# 字符串拼接
greeting s1 s2
print(greeting) # 输出: Hello World# 字符串重复
repeated abc * 3
print(repeated) # 输出: abcabcabc字符串方法
Python 提供了许多内置的字符串方法用于处理和操作字符串。
# 字符串方法
text hello world
print(text.capitalize()) # 输出: Hello world
print(text.upper()) # 输出: HELLO WORLD
print(text.replace(world, Python)) # 输出: hello Python
print(hello in text) # 输出: True
print(len(text)) # 输出: 11字符串格式化
Python 支持多种字符串格式化方式如 % 操作符、str.format() 方法和 f-stringPython 3.6。
# % 操作符
name Alice
age 30
formatted My name is %s and I am %d years old. % (name, age)
print(formatted) # 输出: My name is Alice and I am 30 years old.# str.format()
formatted My name is {} and I am {} years old..format(name, age)
print(formatted) # 输出: My name is Alice and I am 30 years old.# f-string (Python 3.6)
formatted fMy name is {name} and I am {age} years old.
print(formatted) # 输出: My name is Alice and I am 30 years old.List列表
列表是有序且可变的集合允许重复元素。列表用方括号 [] 表示。
基本操作
创建列表使用方括号或 list() 构造函数。访问元素通过索引访问列表中的元素。切片使用 [start:end:step] 语法。修改元素通过索引修改列表中的元素。添加元素使用 append()、insert() 和 extend() 方法。删除元素使用 remove()、pop() 和 del 语句。
# 创建列表
fruits [apple, banana, cherry]
empty_list list()# 访问元素
print(fruits[0]) # 输出: apple
print(fruits[-1]) # 输出: cherry# 切片
print(fruits[1:3]) # 输出: [banana, cherry]# 修改元素
fruits[1] blueberry
print(fruits) # 输出: [apple, blueberry, cherry]# 添加元素
fruits.append(orange)
fruits.insert(1, grape)
fruits.extend([mango, kiwi])
print(fruits) # 输出: [apple, grape, blueberry, cherry, orange, mango, kiwi]# 删除元素
fruits.remove(grape)
popped fruits.pop() # 弹出最后一个元素
del fruits[1]
print(fruits) # 输出: [apple, cherry, orange, mango]列表方法
Python 提供了许多内置的列表方法用于操作和管理列表。
# 列表方法
numbers [3, 1, 4, 1, 5, 9, 2, 6, 5]# 排序
numbers.sort()
print(numbers) # 输出: [1, 1, 2, 3, 4, 5, 5, 6, 9]# 反转
numbers.reverse()
print(numbers) # 输出: [9, 6, 5, 5, 4, 3, 2, 1, 1]# 查找元素
index numbers.index(5)
count numbers.count(5)
print(index, count) # 输出: 2 2# 清空列表
numbers.clear()
print(numbers) # 输出: []Tuple元组
元组是有序且不可变的集合不允许修改其元素。元组用圆括号 () 表示。
基本操作
创建元组使用圆括号或 tuple() 构造函数。访问元素通过索引访问元组中的元素。切片使用 [start:end:step] 语法。解包元组可以将元组中的元素解包赋值给多个变量。
# 创建元组
point (3, 4)
empty_tuple tuple()# 访问元素
print(point[0]) # 输出: 3
print(point[-1]) # 输出: 4# 切片
coordinates (1, 2, 3, 4, 5)
print(coordinates[1:4]) # 输出: (2, 3, 4)# 解包元组
x, y point
print(x, y) # 输出: 3 4元组方法
由于元组是不可变的因此提供的方法较少主要包括 count() 和 index()。
# 元组方法
t (1, 2, 2, 3, 4, 2)# 查找元素
index t.index(2)
count t.count(2)
print(index, count) # 输出: 1 3Dictionary字典
字典是无序的键值对集合键必须是唯一的且不可变。字典用花括号 {} 表示。
基本操作
创建字典使用花括号或 dict() 构造函数。访问元素通过键访问字典中的值。修改元素通过键修改字典中的值。添加元素通过键添加新的键值对。删除元素使用 del 语句或 pop() 方法。
# 创建字典
person {name: Alice,age: 30,city: New York
}
empty_dict dict()# 访问元素
print(person[name]) # 输出: Alice
print(person.get(age)) # 输出: 30# 修改元素
person[age] 31
print(person) # 输出: {name: Alice, age: 31, city: New York}# 添加元素
person[country] USA
print(person) # 输出: {name: Alice, age: 31, city: New York, country: USA}# 删除元素
del person[city]
removed_value person.pop(country)
print(person) # 输出: {name: Alice, age: 31}字典方法
Python 提供了许多内置的字典方法用于操作和管理字典。
# 字典方法
person {name: Alice,age: 30,city: New York
}# 获取所有键
keys person.keys()
print(keys) # 输出: dict_keys([name, age, city])# 获取所有值
values person.values()
print(values) # 输出: dict_values([Alice, 30, New York])# 获取所有键值对
items person.items()
print(items) # 输出: dict_items([(name, Alice), (age, 30), (city, New York)])# 更新字典
person.update({age: 31, country: USA})
print(person) # 输出: {name: Alice, age: 31, city: New York, country: USA}# 清空字典
person.clear()
print(person) # 输出: {}3. 数据类型转换
Python 提供了多种内置函数来执行不同类型之间的转换。这些函数不仅可以用于基本数据类型之间的转换还可以用于复杂数据结构之间的转换。
基本数据类型转换
int()将其他类型转换为整数。float()将其他类型转换为浮点数。str()将其他类型转换为字符串。bool()将其他类型转换为布尔值。
# 基本数据类型转换
int_value int(3.5) # 输出: 3
float_value float(12.34) # 输出: 12.34
str_value str(42) # 输出: 42
bool_value bool(0) # 输出: False复杂数据类型转换
list()将其他类型转换为列表。tuple()将其他类型转换为元组。set()将其他类型转换为集合。dict()将其他类型转换为字典。
# 复杂数据类型转换
list_from_string list(hello)
print(list_from_string) # 输出: [h, e, l, l, o]tuple_from_list tuple([1, 2, 3])
print(tuple_from_list) # 输出: (1, 2, 3)set_from_list set([1, 2, 2, 3, 4])
print(set_from_list) # 输出: {1, 2, 3, 4}dict_from_tuples dict([(name, Alice), (age, 30)])
print(dict_from_tuples) # 输出: {name: Alice, age: 30}数字系统转换
hex()将整数转换为十六进制字符串。oct()将整数转换为八进制字符串。bin()将整数转换为二进制字符串。
# 数字系统转换
hex_value hex(255) # 输出: 0xff
oct_value oct(64) # 输出: 0o100
bin_value bin(13) # 输出: 0b11014. 进阶概念
不可变 vs 可变类型
不可变类型一旦创建后其内容不能被修改。例如int、float、str、tuple 等。可变类型可以在创建后修改其内容。例如list、dict、set 等。
# 不可变类型
s hello
s world # 实际上创建了一个新的字符串对象
print(s) # 输出: hello world# 可变类型
l [1, 2, 3]
l.append(4)
print(l) # 输出: [1, 2, 3, 4]内存管理和垃圾回收
Python 使用自动内存管理机制包括引用计数和垃圾回收器GC。当一个对象的引用计数为零时它会被自动释放。垃圾回收器还会处理循环引用的情况。
import gc# 启用垃圾回收
gc.enable()# 手动触发垃圾回收
gc.collect()类型提示Type Hints
Python 3.5 引入了类型提示功能允许你在代码中明确指定变量、函数参数和返回值的类型。这有助于提高代码的可读性和维护性并且可以与静态分析工具结合使用。
from typing import List, Dict, Tupledef greet(name: str) - str:return fHello, {name}!def process_data(data: List[int]) - Dict[str, int]:return {min: min(data), max: max(data)}def get_coordinates() - Tuple[int, int]:return (3, 4)总结
通过上述详细的解释我们不仅涵盖了 Python 中的基本变量类型和数据结构还深入探讨了它们的特性和操作方法。此外我们还介绍了进阶概念如不可变与可变类型、内存管理、垃圾回收和类型提示。这些知识将帮助你更好地理解和使用 Python 编程语言编写高效、可靠的代码。
如果你有任何具体问题或需要进一步的解释请随时告诉我