Python 数据科学基础:核心编程概念回顾
嘿,各位数据科学爱好者!今天,咱们要一起深入探讨 Python 在数据科学领域的基石。Python 已经成为数据科学、机器学习以及人工智能等领域不可或缺的工具。它的语法简洁、生态系统强大,拥有海量的库和框架,使得数据处理、分析和可视化变得轻松高效。那么,为了更好地掌握数据科学,让我们从 Python 的基础知识开始复习吧!这篇文章旨在带你回顾 Python 编程的核心概念,为后续的数据科学学习打下坚实的基础。我们会深入探讨输入输出、数据类型、控制流、函数、模块以及面向对象编程等关键知识点。准备好了吗?让我们一起开始 Python 数据科学之旅吧!
Python 输入输出:与程序互动的第一步
在 Python 编程中,输入输出是程序与用户交互的关键方式。通过输入,程序可以接收用户的指令和数据;通过输出,程序可以将结果展示给用户。input()
函数和 print()
函数是 Python 中最常用的输入输出工具。它们简单易用,功能强大,是每个 Python 程序员必须掌握的基础知识。
获取用户输入:input()
函数
input()
函数允许程序从用户那里获取输入。当程序执行到 input()
函数时,它会暂停执行,等待用户输入内容。用户输入完成后,按下回车键,input()
函数会将用户输入的内容作为字符串返回。需要注意的是,input()
函数获取到的所有输入内容,无论用户输入的是数字、字母还是其他字符,都会被当作字符串处理。因此,如果我们需要将输入的内容作为数字进行计算,需要使用类型转换函数,例如 int()
或 float()
,将字符串转换为整数或浮点数。
让我们来看一个简单的例子:
a = int(input('请输入 a 【整数】:'))
b = int(input('请输入 b 【整数】:'))
print(f'你输入的 a 是:{a},b 是:{b}')
在这个例子中,我们首先使用 input()
函数提示用户输入两个整数,并将输入的内容分别赋值给变量 a
和 b
。由于 input()
函数返回的是字符串,我们使用 int()
函数将字符串转换为整数。然后,我们使用 print()
函数将用户输入的内容输出到屏幕上。这个例子展示了 input()
函数的基本用法,以及如何将用户输入的内容转换为我们需要的数据类型。
input()
函数还可以接受一个字符串作为参数,用于向用户显示提示信息。例如,input('请输入您的姓名:')
会在屏幕上显示“请输入您的姓名:”,并等待用户输入。这个提示信息可以帮助用户了解程序需要什么样的输入,从而提高用户体验。
输出结果:print()
函数
print()
函数用于将程序的结果输出到屏幕上。它可以接受多个参数,并将它们以空格分隔的形式输出。print()
函数还可以接受一些可选参数,用于控制输出的格式,例如 sep
参数用于指定分隔符,end
参数用于指定输出的结尾字符。
下面是一些 print()
函数的用法示例:
print('Hello, world!') # 输出字符串
print(1, 2, 3) # 输出多个数字,以空格分隔
print('a', 'b', 'c', sep=',') # 输出多个字符,以逗号分隔
print('This is the first line.', end='\n')
print('This is the second line.') # 输出两行文本
在这些例子中,我们展示了 print()
函数的多种用法。print('Hello, world!')
输出一个简单的字符串。print(1, 2, 3)
输出多个数字,它们之间用空格分隔。print('a', 'b', 'c', sep=',')
输出多个字符,它们之间用逗号分隔。print('This is the first line.', end='\n')
和 print('This is the second line.')
输出两行文本,end='\n'
表示第一行文本的结尾字符是换行符。
print()
函数还可以使用格式化字符串来输出更复杂的内容。格式化字符串是一种特殊的字符串,它可以包含占位符,用于在输出时插入变量的值。Python 提供了多种格式化字符串的方法,例如 %
格式化、str.format()
方法以及 f-strings。f-strings 是 Python 3.6 引入的一种新的格式化字符串的方法,它使用起来更加简洁方便。
让我们来看一个使用 f-strings 的例子:
name = 'Alice'
age = 30
print(f'My name is {name}, and I am {age} years old.') # 使用 f-strings 输出
在这个例子中,我们使用 f-strings 将变量 name
和 age
的值插入到字符串中。f-strings 的语法非常简单,只需要在字符串前面加上字母 f
,然后在字符串中使用花括号 {}
包裹变量名即可。f-strings 是 Python 中最推荐的格式化字符串的方法,因为它既简洁又高效。
数据类型:Python 世界的基石
在 Python 中,数据类型是构建程序的基石。每种数据类型都有其特定的属性和用途。理解不同的数据类型以及它们之间的转换方式,对于编写高效且可靠的 Python 代码至关重要。Python 提供了多种内置数据类型,包括数字、字符串、列表、元组、字典和集合。每种数据类型都有其独特的特点和适用场景。掌握这些数据类型,可以帮助我们更好地组织和处理数据,从而编写出更强大的程序。
数字类型:整数、浮点数和复数
Python 中的数字类型主要包括整数(int
)、浮点数(float
)和复数(complex
)。整数用于表示没有小数部分的数字,例如 1、100 和 -20。浮点数用于表示带有小数部分的数字,例如 3.14、2.718 和 -0.5。复数用于表示具有实部和虚部的数字,例如 1 + 2j。Python 支持对数字进行各种算术运算,包括加法、减法、乘法、除法、取模和幂运算。
a = 10
b = 3.14
c = 2 + 3j
print(type(a)) # 输出 <class 'int'>
print(type(b)) # 输出 <class 'float'>
print(type(c)) # 输出 <class 'complex'>
print(a + b) # 输出 13.14
print(a * b) # 输出 31.400000000000002
print(c.real) # 输出 2.0
print(c.imag) # 输出 3.0
在这个例子中,我们定义了三个变量 a
、b
和 c
,分别表示整数、浮点数和复数。我们使用 type()
函数来查看变量的类型。我们还展示了如何对数字进行算术运算,以及如何访问复数的实部和虚部。需要注意的是,浮点数的运算可能会存在精度问题,这是由于计算机内部表示浮点数的方式导致的。因此,在进行浮点数比较时,应该使用一定的容差。
字符串类型:文本的表示
字符串(str
)用于表示文本。在 Python 中,字符串是不可变的序列,这意味着一旦创建,就不能修改字符串的内容。字符串可以使用单引号、双引号或三引号来定义。单引号和双引号定义的字符串没有任何区别,三引号定义的字符串可以跨越多行。
Python 提供了丰富的字符串操作方法,例如字符串连接、切片、查找、替换和格式化。
s = 'Hello, world!'
print(len(s)) # 输出 13
print(s[0]) # 输出 H
print(s[7:12]) # 输出 world
print(s + ' This is a test.') # 输出 Hello, world! This is a test.
print(s.replace('world', 'Python')) # 输出 Hello, Python!
在这个例子中,我们定义了一个字符串 s
。我们使用 len()
函数来获取字符串的长度。我们使用切片操作来访问字符串的子串。我们使用 +
运算符来连接字符串。我们使用 replace()
方法来替换字符串中的子串。这些例子展示了字符串的一些基本操作。
列表类型:有序的集合
列表(list
)是一种有序的集合,可以包含任意类型的元素。列表是可变的,这意味着可以修改列表的内容。列表使用方括号 []
来定义,元素之间用逗号 ,
分隔。
Python 提供了丰富的列表操作方法,例如添加元素、删除元素、插入元素、排序和反转。
l = [1, 2, 'a', 'b', 3.14]
print(len(l)) # 输出 5
print(l[0]) # 输出 1
l.append('c') # 在列表末尾添加元素
print(l) # 输出 [1, 2, 'a', 'b', 3.14, 'c']
l.insert(2, 'x') # 在索引 2 处插入元素
print(l) # 输出 [1, 2, 'x', 'a', 'b', 3.14, 'c']
l.remove('a') # 删除元素 'a'
print(l) # 输出 [1, 2, 'x', 'b', 3.14, 'c']
del l[0] # 删除索引 0 处的元素
print(l) # 输出 [2, 'x', 'b', 3.14, 'c']
l.sort() # TypeError: '<' not supported between instances of 'str' and 'int'
在这个例子中,我们定义了一个列表 l
。我们使用 len()
函数来获取列表的长度。我们使用索引来访问列表的元素。我们使用 append()
方法在列表末尾添加元素。我们使用 insert()
方法在列表中插入元素。我们使用 remove()
方法删除列表中的元素。我们使用 del
语句删除列表中的元素。这些例子展示了列表的一些基本操作。
元组类型:不可变的序列
元组(tuple
)是一种不可变的序列,类似于列表。元组使用圆括号 ()
来定义,元素之间用逗号 ,
分隔。由于元组是不可变的,因此不能修改元组的内容。元组通常用于存储不应该被修改的数据,例如坐标、日期和时间。
t = (1, 2, 'a', 'b', 3.14)
print(len(t)) # 输出 5
print(t[0]) # 输出 1
# t.append('c') # 报错:AttributeError: 'tuple' object has no attribute 'append'
在这个例子中,我们定义了一个元组 t
。我们使用 len()
函数来获取元组的长度。我们使用索引来访问元组的元素。由于元组是不可变的,因此不能使用 append()
方法来添加元素。尝试添加元素会抛出 AttributeError
异常。
字典类型:键值对的集合
字典(dict
)是一种键值对的集合。字典使用花括号 {}
来定义,键和值之间用冒号 :
分隔,键值对之间用逗号 ,
分隔。字典中的键必须是唯一的,且必须是不可变类型(例如字符串、数字或元组)。字典中的值可以是任意类型。
字典提供了快速的键查找功能。可以通过键来访问字典中的值,也可以通过键来修改或删除字典中的键值对。
d = {'name': 'Alice', 'age': 30, 'city': 'New York'}
print(len(d)) # 输出 3
print(d['name']) # 输出 Alice
d['age'] = 31 # 修改键 'age' 的值
print(d) # 输出 {'name': 'Alice', 'age': 31, 'city': 'New York'}
d['gender'] = 'female' # 添加键值对
print(d) # 输出 {'name': 'Alice', 'age': 31, 'city': 'New York', 'gender': 'female'}
del d['city'] # 删除键 'city' 对应的键值对
print(d) # 输出 {'name': 'Alice', 'age': 31, 'gender': 'female'}
在这个例子中,我们定义了一个字典 d
。我们使用 len()
函数来获取字典中键值对的数量。我们使用键来访问字典中的值。我们使用键来修改字典中的值。我们使用 del
语句删除字典中的键值对。这些例子展示了字典的一些基本操作。
集合类型:无序的唯一元素集合
集合(set
)是一种无序的唯一元素集合。集合使用花括号 {}
或 set()
函数来定义。集合中的元素必须是不可变类型(例如字符串、数字或元组)。集合的主要用途是去除重复元素和进行集合运算,例如并集、交集和差集。
s = {1, 2, 3, 2, 1}
print(s) # 输出 {1, 2, 3},重复元素被自动去除
s1 = {1, 2, 3}
s2 = {3, 4, 5}
print(s1 | s2) # 输出 {1, 2, 3, 4, 5},并集
print(s1 & s2) # 输出 {3},交集
print(s1 - s2) # 输出 {1, 2},差集
在这个例子中,我们定义了一个集合 s
。我们看到,重复元素被自动去除。我们还展示了集合的并集、交集和差集运算。集合是一种非常有用的数据类型,特别是在需要处理唯一元素或进行集合运算时。
总结
本文回顾了 Python 编程的一些基础知识,包括输入输出和数据类型。input()
函数和 print()
函数是 Python 中最常用的输入输出工具。Python 提供了多种内置数据类型,包括数字、字符串、列表、元组、字典和集合。理解这些数据类型以及它们之间的转换方式,对于编写高效且可靠的 Python 代码至关重要。掌握这些基础知识,可以为后续的数据科学学习打下坚实的基础。希望这篇文章能够帮助你更好地理解 Python 编程,并在数据科学的道路上走得更远!
在接下来的文章中,我们将继续深入探讨 Python 的其他核心概念,例如控制流、函数、模块以及面向对象编程。敬请期待!