- 发布于
Python 入门
Python的核心理念:一切皆对象
在Python中,一切都被视为对象,无论是基本数据类型还是函数、类等。这种设计哲学简化了语言的复杂性,并使得语言更加统一。
1. 变量交换
在其他编程语言中,交换两个变量的值通常需要一个临时变量:
1temp = x
2x = y
3y = temp
而在Python中,这可以通过一个简洁的语法实现:
1x, y = y, x
2. Python基本数据类型
Python的基本数据类型包括整数(int
)和浮点数(float
)。Python还支持多种进制的表示方法:
- 十进制(默认)
- 二进制,以
0b
开头 - 八进制,以
0o
开头 - 十六进制,以
0x
开头
转换进制的函数包括bin()
, oct()
, hex()
等。
3. 转义字符与字符串操作
Python中的转义字符,如\n
表示换行,\r
表示回车。字符串的截取和操作在Python中也非常简单,支持使用负数索引。
4. 列表、元组、集合和字典
Python的列表(list
)类似于数组,但更加灵活。元组(tuple
)是不可变的列表。集合(set
)是无序且元素唯一的集合。字典(dict
)是键值对的集合,类似于其他语言中的对象或哈希表。
3. Python的变量和运算符
Python中的变量可以是不可变的(如int
, str
, tuple
)或可变的(如list
, set
, dict
)。Python的运算符包括赋值运算符、比较运算符、逻辑运算符、成员运算符、身份运算符和位运算符。
4. 变量与运算符
Python支持多种运算符,包括赋值运算符(如+=
)、比较运算符、逻辑运算符(and
, or
, not
)、成员运算符(in
, not in
)、身份运算符(is
, is not
)和位运算符。
Python表达式与控制流
Python的表达式是由运算符和操作数构成的序列。Python使用缩进来区分代码块,而不是括号。这包括条件控制(if
/else
)、循环控制(for
/while
)和分支控制。
面向对象编程
Python支持面向对象编程(OOP)。它允许定义类和创建对象。类可以有实例方法、类方法和静态方法。Python中的成员可见性可以是公开的或私有的。面向对象的三大特性——继承、封装和多态——在Python中都得到了支持。
正则表达式和JSON
正则表达式在Python中用于字符串匹配。它包括元字符、字符集、数量词、边界匹配等概念。JSON在Python中对应的数据类型包括对象(dict
)、数组(list
)、字符串(str
)、数字(int
/float
)、布尔值(True
/False
)和空值(None
)。
Python高级语法与用法
Python的高级语法包括枚举(enum
)、函数式编程、匿名函数(lambda
)、三元表达式、map
、reduce
、filter
、时间处理(time
模块)和装饰器(decorator
)。
Python进阶语法
Python的进阶语法包括使用字典来代替switch
语句、列表推导式等。
通过这些学习笔记,我们可以看到Python的强大和灵活性。无论是进行网络爬虫、数据分析、自动化运维,还是Web开发和机器学习,Python都提供了丰富的功能和简洁的语法来帮助开发者高效地实现目标。
Python函数式编程
Python不仅支持面向对象编程,还支持函数式编程。这种编程范式强调将函数作为一等公民,意味着函数可以作为参数传递、作为返回值,以及赋值给变量。
1. 匿名函数lambda
Python中的匿名函数使用lambda
关键字定义,它允许创建小型无名的函数对象。这些函数通常用于需要函数对象的地方,如在map()
或filter()
中。
# 匿名函数的定义
f = lambda x, y: x + y
# 使用匿名函数
result = f(1, 2) # 结果为3
2. Python的三元表达式
Python支持三元表达式,这允许在一行内进行条件赋值。
# 三元表达式的使用
a = 1
b = 2
c = a if a > b else b # c的值为2
3. map函数
map()
函数接收一个函数和一个序列,将传入的函数依次作用到序列的每个元素上,并返回一个新的迭代器。
# 使用map函数
numbers = [1, 2, 3, 4]
squared = map(lambda x: x ** 2, numbers) # 结果为[1, 4, 9, 16]
4. reduce函数
reduce()
函数在functools
模块中,它对序列的元素进行累积操作。
from functools import reduce
# 使用reduce函数
numbers = [1, 2, 3, 4]
result = reduce(lambda x, y: x + y, numbers) # 结果为10
5. filter函数
filter()
函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器。
# 使用filter函数
numbers = [1, 2, 3, 4]
even_numbers = filter(lambda x: x % 2 == 0, numbers) # 结果为[2, 4]
6. 时间处理
Python的time
模块提供了时间相关的函数。可以用于获取当前时间、格式化时间等。
import time
# 获取当前时间戳
timestamp = time.time()
7. 装饰器
装饰器是Python中一个强大的功能,它允许修改一个函数、方法或类的行为。装饰器本质上是一个返回函数的函数。
# 定义一个装饰器
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Something is happening before the function is called.")
result = func(*args, **kwargs)
print("Something is happening after the function is called.")
return result
return wrapper
# 使用装饰器
@my_decorator
def say_hello():
print("Hello!")
say_hello()
Python进阶语法
1. 字典代替switch
在Python中,由于没有switch
语句,我们可以使用字典映射来代替。
def switch_case(argument):
switcher = {
1: "Case 1",
2: "Case 2",
3: "Case 3",
}
return switcher.get(argument, "Default case")
# 使用字典代替switch
result = switch_case(2) # 结果为"Case 2"
2. 列表推导式
列表推导式提供了一种优雅的方法来创建列表。
# 使用列表推导式
squared = [x ** 2 for x in range(10)] # 结果为[0, 1, 4, 9, ..., 81]