掘金 人工智能 21小时前
Python 入门
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了 Python 编程的基础知识,涵盖了变量、数据类型、字符串格式化、控制流、函数、数据结构、JSON 数据处理、类和类型注解等多个方面。通过代码示例,帮助读者快速掌握 Python 编程的核心概念和实践技巧,为进一步学习和应用 Python 奠定基础。

🔢 **变量与数据类型:** Python 是动态类型语言,变量类型由赋值决定。文章介绍了变量定义、算术运算、类型查看与转换,并提供了类型转换的示例,如将整数转换为字符串、字符串转换为整数和浮点数。

✍️ **字符串格式化:** 介绍了两种字符串格式化的方法:旧式的 `%` 操作符和现代的 f-string。f-string 提供了更简洁、更易读的语法,推荐使用。通过班级人数和平均分数的示例,展示了如何使用这两种方法。

🔄 **控制流:** 讲解了 `if` 语句、`while` 循环和 `for` 循环。`if` 语句用于条件判断,`while` 循环在条件为真时重复执行,`for` 循环用于遍历序列或可迭代对象,提供了清晰的代码示例。

🛠️ **函数与数据结构:** 阐述了函数的定义、调用和匿名函数 (lambda)。同时,详细介绍了列表、元组、集合和字典这四种常用的数据结构,包括它们的特点、用法和常用方法。

📦 **类与面向对象编程:** 介绍了类的定义、实例化、属性访问、方法调用,以及内置方法、私有成员、继承和 `super()` 函数。通过示例,展示了如何创建类、定义属性和方法,以及如何实现继承和多态。

在 Python 中,字典(dict)常被类比为其他语言中的对象,而列表(list)则类似于数组。

1. "Hello World" - Python入门

print('hello world')

2. 变量

2.1. 变量定义

变量名 = 变量值

a = 1b = 2c = 3

2.2. 变量运算

可以对变量进行各种算术运算。

print(a + b)  # 加法print(a - b)  # 减法print(a * b)  # 乘法print(a / b)  # 除法 (结果为浮点数)

2.3. 变量类型

Python 是动态类型语言,变量的类型是根据赋给它的值自动确定的。可以使用 type() 函数查看变量类型。

print(type(a))  # a 是整数 (int)print(type(b))  # b 是整数 (int)print(type(c))  # c 是整数 (int)

2.4. 变量类型转换

可以显式地转换变量的类型。

a_original = 1b_original = "2" # 假设 b 的初始值是字符串 "2" c_original = "3.0" # 假设 c 的初始值是字符串 "3.0"print(f"原始值: a={a_original}({type(a_original)}), b={b_original}({type(b_original)}), c={c_original}({type(c_original)})")a_converted_to_str = str(a_original)b_converted_to_int = int(b_original)c_converted_to_float = float(c_original)print(f"转换为字符串: a_converted_to_str = {a_converted_to_str} ({type(a_converted_to_str)})")print(f"转换为整数: b_converted_to_int = {b_converted_to_int} ({type(b_converted_to_int)})")print(f"转换为浮点数: c_converted_to_float = {c_converted_to_float} ({type(c_converted_to_float)})")

3. 字符串格式化

将变量的值嵌入到字符串中。

3.1. 使用 % 操作符 (旧式方法)

3.2. 使用 f-string (格式化字符串字面值 - 推荐)

这是更现代且推荐的方式,代码更简洁易读。

class_num = 57avg_score_value = 85.5 # 假设平均分是浮点数message_fstring = f'班级人数是{class_num}, 班级平均分是:{avg_score_value}'print(message_fstring)

4. 控制流

4.1. if 语句 (条件判断)

age = 18if age >= 18:    print('成年')elif age >= 12: # 隐含了 age < 18    print('上中学')  elif age >= 5:       print('上小学或幼儿园') else: # age < 5    print('其他 (年龄小于5岁)')

4.2. while 循环

只要条件为真,就重复执行代码块。

i = 0while i < 10:    print(i)    i += 1  # 等同于 i = i + 1

4.3. for 循环

遍历序列(如列表、元组、字符串)或可迭代对象。

for i in range(1, 10, 2):    print(i)

5. 函数

函数是可重用的代码块,用于执行特定任务。

5.1. 函数定义与调用

使用 def 关键字定义函数。

# 带有名称的函数def add(a, b):    return a + b, 2  # 可以返回多个值,它们会组成一个元组# 调用函数result_sum, result_second_val = add(1, 2) # 解包元组返回值print(f"加法结果: {result_sum}, 第二个返回值: {result_second_val}")# 如果只需要部分返回值results_tuple = add(3, 4)print(f"返回的元组: {results_tuple}")print(f"仅获取加法结果: {results_tuple[0]}")

5.2. 匿名函数 (lambda)

用于创建简单、单行的小函数。通常用在需要一个简单函数作为参数的地方。

multiply = lambda x, y: x * yprint(f"匿名函数计算 3 * 4 = {multiply(3, 4)}")

6. 数据结构

6.1. 列表 (list)

有序、可变(可以修改)的元素集合。允许重复元素。
*注意:不建议使用 list 作为变量名,因为它会覆盖 Python 内置的 list() 函数。

my_list_example = [1, 2, "3", 4, 5]print(f"列表第三个元素 (索引2): {my_list_example[2]}") # 输出: "3"print(f"列表第四个元素 (索引3): {my_list_example[3]}") # 输出: 4# 列表的方法# 1.查询某元素下标    list.index("3")# 2.在列表中插入新元素    list.insert(0, "插入的内容")# 3.在列表中追加元素    list.append("追加的内容")    list.extend(["追加的内容1", "追加的内容2"])# 4.删除列表中的元素    del list[0]    list.pop(0)    list.remove("3")    list.clear()

6.2. 元组 (tuple)

有序、不可变(一旦创建不能修改)的元素集合。允许重复元素。

my_tuple_example = (1, 2, 3, 4, 5)print(f"元组第四个元素 (索引3): {my_tuple_example[3]}")  # 输出: 4# my_tuple_example[0] = 10 # 这行会报错 TypeError,因为元组不可修改print(f"元组示例: {my_tuple_example}")

6.3. 集合 (set)

无序、不重复的元素集合。主要用于成员测试和消除重复项。

my_set_example = {1, 2, 3, 4, 5, 5, 4} # 重复的元素会自动去除print(f"集合示例 (顺序可能不同): {my_set_example}")  # 输出可能是 {1, 2, 3, 4, 5}

6.4. 字典 (dict)

无序(Python 3.7+ 中保持插入顺序)的键值对(key-value pair)集合。键必须是唯一的且通常是不可变类型(如字符串、数字、元组)。

关于“不支持while循环”的说明:字典本身可以直接用于 for 循环遍历其键、值或项。虽然不能直接 while my_dict: 这样用字典本身作为 while 循环的条件来遍历元素,但可以在 while 循环内部操作字典或基于字典的某些条件进行循环。

my_dict_example = {'name': '张三', 'age': 18}print(f"字典中 'name' 对应的值: {my_dict_example['name']}")  # 输出: 张三# 字典的方法# 1.新增元素dict['gender'] = '男'# 2.删除del dict['name']# 3.清空dict.clear()# 4.获取全部keydict.keys()# 5.获取全部valuedict.values()# 6.获取全部key-valuedict.items()# 7.统计字典中的元素数量len(dict)

7. JSON 数据格式

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,常用于不同语言或系统之间传递数据。Python 的 json 模块提供了处理 JSON 数据的功能。

7.1. Python 数据 -> JSON 字符串 (json.dumps)

7.2. JSON 字符串 -> Python 数据 (json.loads)

8. 类 (面向对象编程)

8.1. 类的定义和实例化

class Person:    # 类型提示 (可选,但有助于代码可读性和静态分析)    name: str    age: int    gender: str    # 初始化方法:创建对象时自动调用    def __init__(self, name: str, age: int, gender: str):        self.name = name    # self.name 是实例变量        self.age = age        self.gender = gender        print(f"Person对象 '{self.name}' 已创建。")    # 实例方法:对象可以调用的方法,第一个参数总是 self,代表实例本身    def say(self, msg: str):        print(f'我叫{self.name}, 我今年{self.age}岁, 我是{self.gender}生。我说:“{msg}”')# 创建对象 (实例化类 Person)person_instance_1 = Person('张三', 18, '男')person_instance_2 = Person('王芳', 22, '女')# 访问对象的属性print(f"{person_instance_1.name}的年龄是: {person_instance_1.age}")# 调用对象的方法person_instance_1.say('你好,Python!')person_instance_2.say('很高兴认识你。')

9.2. 类的内置方法 (特殊方法/魔术方法)

这些方法以双下划线开头和结尾(例如 __init__),它们在特定情况下由 Python 自动调用。

9.3. 私有成员 (名称修饰/Name Mangling)

在变量名或方法名前加双下划线 __会使其成为“伪私有”的。只有类能使用,对象不可以用。

class Person:    __name = '张三'    __age = 18    __gender = '男'    def __init__(self, name, age, gender):        self.__name = name        self.__age = age        self.__gender = gender

9.4. 类的继承

继承允许一个类(子类/派生类)获取另一个类(父类/基类)的属性和方法,并可以添加新的或重写已有的。

10. 类型注解 (Type Hinting)

类型注解为代码提供了关于变量、函数参数和返回值的类型信息。它们主要用于静态分析工具(如 MyPy)进行类型检查,以及提高代码的可读性和可维护性。Python 解释器本身在运行时通常不强制执行类型检查(但某些库可能会利用它们)。

from typing import Union, Optional, Listvar_annotated_1: int = 10var_annotated_2: str = "你好"var_annotated_3: Union[int, str] # 可以是整数或字符串var_annotated_4: Optional[float] = None # 可以是浮点数或 Nonedef create_greeting(name: str, age: Optional[int] = None) -> str:    greeting = f"你好, {name}!"    if age is not None:        greeting += f" 你今年 {age} 岁。"    return greetingdef sum_list_of_numbers(numbers: List[Union[int, float]]) -> float:    total: float = 0.0    for num in numbers:        total += num    return totalprint(create_greeting("小张"))print(create_greeting("老王", 30))my_numbers: List[Union[int, float]] = [1, 2.5, 3, 4.0]print(f"数字列表的总和: {sum_list_of_numbers(my_numbers)}")var_annotated_3 = 100print(f"var_annotated_3 (int): {var_annotated_3}")var_annotated_3 = "世界"print(f"var_annotated_3 (str): {var_annotated_3}")

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python 编程 基础知识 数据结构 面向对象
相关文章