发布于

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中的变量可以是不可变的(如intstrtuple)或可变的(如listsetdict)。Python的运算符包括赋值运算符、比较运算符、逻辑运算符、成员运算符、身份运算符和位运算符。

4. 变量与运算符

Python支持多种运算符,包括赋值运算符(如+=)、比较运算符、逻辑运算符(andornot)、成员运算符(innot in)、身份运算符(isis 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)、三元表达式、mapreducefilter、时间处理(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]