目录:
1、Python 基本特点
2、Python基础语法结构
3、Python 数据类型分类
4、Python函数
5、Python面向对象

1. Python 基本特点

  • 解释型语言:逐行执行,不需要编译。
  • 缩进表示代码块(而不是 {})。
  • 动态类型:变量不需要声明类型。
  • 跨平台:支持 Windows、Mac、Linux。

2. 基础语法结构

2.1 输出与输入

print("Hello, Python!")  # 输出
name = input("请输入你的名字:")  # 输入
print("你好,", name)

2.2 变量与数据类型

# 变量命名:字母、数字、下划线,不能以数字开头
x = 10          # 整数 int
y = 3.14        # 浮点数 float
name = "Tom"    # 字符串 str
is_ok = True    # 布尔值 bool

2.3 数据类型转换

int("123")      # 转为整数
float("3.14")   # 转为浮点数
str(100)        # 转为字符串

2.4 运算符

# 算术运算
a + b   # 加
a - b   # 减
a * b   # 乘
a / b   # 除(浮点)
a // b  # 整除
a % b   # 取余
a ** b  # 幂

# 比较运算
a == b
a != b
a > b
a < b
a >= b
a <= b

# 逻辑运算
and, or, not

2.5 条件语句

age = 18
if age >= 18:
    print("成年人")
elif age >= 13:
    print("青少年")
else:
    print("儿童")

2.6 循环

# for 循环
for i in range(5):  # 0~4
    print(i)

# while 循环
count = 0
while count < 5:
    print(count)
    count += 1

2.7 列表、元组、字典、集合

# 列表 list
nums = [1, 2, 3]
nums.append(4)
print(nums[0])

# 元组 tuple(不可变)
t = (1, 2, 3)

# 字典 dict
person = {"name": "Tom", "age": 20}
print(person["name"])

# 集合 set(去重)
s = {1, 2, 3, 3}

2.8 函数

def greet(name):
    return f"Hello, {name}"

print(greet("Alice"))

2.9 模块与导入

import math
print(math.sqrt(16))

from math import pi
print(pi)

3.Python 数据类型分类

3.1 Python 中的数据类型可以分为 基本类型 和 容器类型:

类型类别数据类型示例
数值类型int(整数)、float(浮点数)、complex(复数)10, 3.14, 2+3j
布尔类型boolTrue, False
字符串类型str"Hello"
容器类型list(列表)、tuple(元组)、dict(字典)、set(集合)[1,2], (1,2), {"a":1}, {1,2}
特殊类型NoneTypeNone

3.2 数值类型

3.2.1 整数 int

a = 10
b = -5
print(type(a))  # <class 'int'>

3.2.2 浮点数 float

pi = 3.14159
print(type(pi))  # <class 'float'>

3.2.3 复数 complex

z = 2 + 3j
print(z.real, z.imag)  # 实部 2.0, 虚部 3.0

3.3 布尔类型 bool

is_ok = True
is_fail = False
print(3 > 2)  # True

 3.4 字符串 str

s = "Hello"
print(s[0])       # H
print(s.lower())  # hello
print(s.upper())  # HELLO
print(s[1:4])     # ell

3.5 容器类型

3.5.1 列表 list(可变)

nums = [1, 2, 3]
nums.append(4)
nums[0] = 10
print(nums)  # [10, 2, 3, 4]

3.5.2 元组 tuple(不可变)

t = (1, 2, 3)
print(t[0])  # 1

3.5.3 字典 dict(键值对)

person = {"name": "Tom", "age": 20}
print(person["name"])  # Tom
person["age"] = 21

3.5.4 集合 set(无序、去重)

s = {1, 2, 2, 3}
print(s)  # {1, 2, 3}

3.6 特殊类型 NoneType

x = None
print(type(x))  # <class 'NoneType'>

3.7 类型转换

int("123")      # 123
float("3.14")   # 3.14
str(100)        # "100"
list("abc")     # ['a', 'b', 'c']
tuple([1, 2])   # (1, 2)
set([1, 1, 2])  # {1, 2}

4. 函数的定义与调用

# 定义一个函数 greet,接收一个参数 name
def greet(name):
    """打招呼函数"""  # 文档字符串,用于说明函数的作用
    return f"Hello, {name}"  # 返回一个字符串

# 调用函数,并传入参数 "Alice"
print(greet("Alice"))  # 输出:Hello, Alice

4.1  位置参数

# 定义一个加法函数,接收两个位置参数 a 和 b
def add(a, b):
    return a + b  # 返回 a 和 b 的和

print(add(3, 5))  # 输出:8

4.2 默认参数

# 定义一个打招呼函数,name 默认值为 "Tom"
def greet(name="Tom"):
    print(f"Hello, {name}")

greet()         # 没有传参,使用默认值,输出:Hello, Tom
greet("Alice")  # 传入参数 "Alice",输出:Hello, Alice

4.3 可变参数

# *args:接收任意数量的位置参数,存储为元组
def sum_all(*args):
    return sum(args)  # sum() 计算所有参数的和

print(sum_all(1, 2, 3))  # 输出:6

# **kwargs:接收任意数量的关键字参数,存储为字典
def show_info(**kwargs):
    print(kwargs)  # 直接打印字典

show_info(name="Tom", age=20)  # 输出:{'name': 'Tom', 'age': 20}

4.4 返回多个值

# 定义一个函数,返回加法和减法的结果
def calc(a, b):
    return a + b, a - b  # 返回一个元组 (加法结果, 减法结果)

result = calc(5, 3)  # 接收元组
print(result)        # 输出:(8, 2)

# 也可以用解包的方式接收多个返回值
sum_, diff = calc(5, 3)
print(sum_, diff)    # 输出:8 2

4.5 变量作用域

x = 10  # 全局变量

def test():
    global x  # 声明要修改全局变量 x
    x = 20    # 修改全局变量
    y = 5     # 局部变量,只能在函数内部使用
    print(y)  # 输出局部变量 y

test()        # 调用函数
print(x)      # 输出修改后的全局变量 20

4.6 匿名函数(lambda)

# 定义一个匿名函数,计算平方
square = lambda x: x ** 2
print(square(5))  # 输出:25

# 使用 lambda 配合 map() 对列表中每个元素乘 2
nums = [1, 2, 3]
print(list(map(lambda n: n * 2, nums)))  # 输出:[2, 4, 6]

4.7 文档字符串(Docstring)

# 定义函数并添加文档字符串
def greet(name):
    """这个函数用来打招呼"""
    return f"Hello, {name}"

# 访问函数的文档字符串
print(greet.__doc__)  # 输出:这个函数用来打招呼

5 Python面向对象

5.1 定义类与创建对象

# 定义一个类 Person
class Person:
    # 构造方法(初始化对象时自动调用)
    # self 代表当前对象本身
    def __init__(self, name, age):
        self.name = name  # 实例属性 name
        self.age = age    # 实例属性 age

    # 定义一个实例方法
    def say_hello(self):
        # 使用 self 访问实例属性
        print(f"你好,我是 {self.name},今年 {self.age} 岁。")

# 创建对象(实例化类)
p1 = Person("Tom", 20)  # 调用 __init__ 方法
p1.say_hello()          # 调用实例方法

5.2 类属性与实例属性

class Dog:
    species = "犬科"  # 类属性(所有对象共享)

    def __init__(self, name):
        self.name = name  # 实例属性(每个对象独立)

# 创建两个对象
dog1 = Dog("小黑")
dog2 = Dog("小白")

# 类属性:所有对象共享同一个值
print(dog1.species)  # 输出:犬科
print(dog2.species)  # 输出:犬科

# 实例属性:每个对象独立
print(dog1.name)  # 输出:小黑
print(dog2.name)  # 输出:小白

5.3 方法类型

class MyClass:
    # 实例方法(第一个参数必须是 self)
    def instance_method(self):
        print("这是实例方法(需要对象调用)")

    # 类方法(第一个参数是 cls,表示类本身)
    @classmethod
    def class_method(cls):
        print("这是类方法(可以用类名调用)")

    # 静态方法(不需要 self 或 cls)
    @staticmethod
    def static_method():
        print("这是静态方法(与类无关的工具方法)")

# 创建对象
obj = MyClass()

# 调用实例方法(必须用对象调用)
obj.instance_method()

# 调用类方法(类名或对象都可以调用)
MyClass.class_method()
obj.class_method()

# 调用静态方法(类名或对象都可以调用)
MyClass.static_method()
obj.static_method()

5.4 封装(访问控制)

class Account:
    def __init__(self, owner, balance):
        self.owner = owner
        self.__balance = balance  # 私有属性(前面加 __)

    # 公共方法:存钱
    def deposit(self, amount):
        self.__balance += amount

    # 公共方法:获取余额
    def get_balance(self):
        return self.__balance

# 创建账户对象
acc = Account("Tom", 1000)
acc.deposit(500)  # 存钱
print(acc.get_balance())  # 输出:1500

# print(acc.__balance)  # ❌ 会报错(私有属性不能直接访问)

5.5 继承

# 定义父类
class Animal:
    def speak(self):
        print("动物发出声音")

# 定义子类 Dog,继承 Animal
class Dog(Animal):
    def speak(self):
        print("汪汪汪")  # 重写父类方法

# 定义子类 Cat,继承 Animal
class Cat(Animal):
    def speak(self):
        print("喵喵喵")  # 重写父类方法

# 创建对象并调用方法
dog = Dog()
cat = Cat()
dog.speak()  # 输出:汪汪汪
cat.speak()  # 输出:喵喵喵

5.6 多态

# 定义一个函数,接收任意 Animal 类型的对象
def animal_speak(animal):
    animal.speak()  # 调用对象的 speak 方法

# 传入不同的对象,表现不同
animal_speak(Dog())  # 输出:汪汪汪
animal_speak(Cat())  # 输出:喵喵喵

5.7 特殊方法(魔术方法)

class Person:
    def __init__(self, name):
        self.name = name

    # __str__ 方法:定义对象被 print() 时的显示内容
    def __str__(self):
        return f"Person: {self.name}"

# 创建对象
p = Person("Tom")
print(p)  # 输出:Person: Tom

5.8 总结

  • 类 是模板,对象 是实例。
  • self 代表对象本身,cls 代表类本身。
  • 封装 用私有属性保护数据。
  • 继承 让子类复用父类代码。
  • 多态 让同一接口适配不同对象。
  • 魔术方法 可以自定义对象的行为(如 __str__、__init__)。
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐