掘金 人工智能 15小时前
三天捡起python-第一天(基础知识)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本教程专为编程新手设计,通过三天的学习,帮助你掌握Python基础知识。文章详细介绍了Python环境搭建、基础语法、列表、元组、字典、集合等核心概念,并通过单词频率统计项目,引导读者实践。教程强调AI编程时代下,理解代码含义比记忆语法更重要,鼓励读者在实践中学习,快速入门Python。

💻 环境搭建是入门Python的第一步。你需要安装Python解释器并配置VS Code编辑器,包括安装Python、Pylance和IntelliCode等扩展,并创建虚拟环境以避免项目依赖冲突。安装Python时,务必勾选“Add Python to PATH”。

✍️ 基础语法是编程的基石。文章回顾了变量与数据类型、条件判断(if-elif-else)、循环结构(for和while)以及函数定义。例如,通过if-elif-else结构实现根据分数判断成绩等级;使用for循环遍历列表,使用while循环实现猜数字游戏。

📒 列表、元组、字典和集合是Python中常用的数据结构。列表是可变的,支持添加、删除和修改元素;元组是不可变的,适用于数据不应被修改的场景;字典是键值对的集合,访问速度快;集合用于去重和集合运算。列表推导式可以简洁地创建列表,字典推导式可以创建字典。

💡 通过“单词频率统计”项目,将所学知识应用于实际。该项目读取文本文件,统计单词出现频率,并返回频率最高的单词。文章还提供了项目优化的建议,如增加停用词过滤、添加词干提取和可视化结果等,鼓励读者实践和拓展。

📚 本教程专为编程小白设计,通过三天的学习,带你掌握Python基础知识AI编程时代下无需强记语法,快速过一遍,能看懂即可

1:环境与工具链搭建

安装Python

首先,我们需要安装最新稳定版的Python。

    访问Python官网:www.python.org/downloads/

    下载最新版本(我现在的是3.12.3)

    安装时**勾选"Add Python to PATH"**(这一步很关键!)

安装完成后,打开命令行(Windows按Win+R,输入cmd)输入:

python --version

如果显示了Python版本号,说明安装成功啦!

配置VS Code

VS Code是目前最受欢迎的代码编辑器之一:

    下载安装VS Code:code.visualstudio.com/

    打开VS Code,进入扩展市场(左侧栏第5个图标,或快捷键Ctrl+Shift+X)

    搜索并安装以下扩展:

创建虚拟环境

虚拟环境就像是为每个项目创建的"小房间",可以避免不同项目的依赖冲突。

Windows系统:

# 创建名为"mypython"的虚拟环境python -m venv mypython# 激活虚拟环境mypython\Scripts\activate# 此时命令行前会出现(mypython)前缀,说明已进入虚拟环境# 安装某个库,例如requestspip install requests# 退出虚拟环境deactivate

小贴士:当你看到命令行前面有(环境名),就表示你已经在虚拟环境中啦!

2:基础语法回顾

变量与数据类型

Python中变量无需声明类型,直接赋值即可使用:

# 数字类型age25        # 整数height175.5  # 浮点数# 字符串name"小明"message'你好,世界!'  # 单引号双引号都可以# 布尔值is_studentTrue  has_petFalse# 打印变量print(f"我叫{name},今年{age}岁,身高{height}cm")

条件判断

使用if-elif-else结构:

score = 85if score >= 90:    print("优秀!")elif score >= 80:    print("良好!")elif score >= 60:    print("及格")else:    print("需要努力了")# 输出:良好!

循环结构

for循环适合遍历可迭代对象:

# 打印1到5for i in range(16):    print(i)# 遍历列表fruits = ["苹果""香蕉""橙子"]for fruit in fruits:    print(f"我喜欢吃{fruit}")

while循环适合不确定次数的循环:

# 猜数字游戏import randomsecret = random.randint(110)guess = 0while guess != secret:    guess = int(input("猜一个1到10之间的数:"))    if guess > secret:        print("猜大了!")    elif guess < secret:        print("猜小了!")        print("恭喜,猜对了!")

函数定义

函数是可重复使用的代码块:

# 定义函数def say_hello(name):    """打招呼函数"""    return f"你好,{name}!"# 调用函数message = say_hello("小红")print(message)  # 输出:你好,小红!# 带默认参数的函数def calculate_price(price, discount=0.9):    return price * discountprint(calculate_price(100))      # 输出:90.0print(calculate_price(1000.8)) # 输出:80.0

3:列表与元组

列表基础操作

列表是Python中最常用的数据结构之一:

# 创建列表students = ["小明""小红""小刚""小丽"]# 访问元素print(students[0])   # 输出:小明print(students[-1])  # 输出:小丽(负索引从末尾开始)# 添加元素students.append("小华")  # 在末尾添加students.insert(1"小芳")  # 在指定位置添加# 删除元素students.remove("小刚")  # 删除指定元素removed = students.pop()  # 弹出最后一个元素并返回# 获取列表长度print(len(students))

列表推导式

列表推导式是Python中非常强大的特性,可以用一行代码创建新列表:

# 传统方式:生成1到10的平方squares = []for i in range(1, 11):    squares.append(i ** 2)print(squares)  # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 使用列表推导式squares = [i ** 2 for i in range(111)]print(squares)  # 同样输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 带条件的列表推导式:获取偶数的平方even_squares = [i ** 2 for i in range(111) if i % 2 == 0]print(even_squares)  # 输出:[4, 16, 36, 64, 100]

排序

理解sort()sorted()的区别:

numbers = [3, 1, 4, 1, 5, 9, 2]# sorted()函数返回新的排序列表,原列表不变sorted_numbers = sorted(numbers)print(numbers)        # [3, 1, 4, 1, 5, 9, 2]print(sorted_numbers) # [1, 1, 2, 3, 4, 5, 9]# sort()方法直接修改原列表numbers.sort()print(numbers)  # [1, 1, 2, 3, 4, 5, 9]# 降序排序numbers.sort(reverse=True)print(numbers)  # [9, 5, 4, 3, 2, 1, 1]# 按字符串长度排序words = ["苹果""香蕉""葡萄""西瓜""草莓"]words.sort(key=len)print(words)  # ['苹果', '西瓜', '香蕉', '草莓', '葡萄']

元组

元组与列表类似,但创建后不能修改:

# 创建元组coordinates = (1020)person = ("张三"25"北京")# 访问元素name, age, city = person  # 元组拆包print(f"{name}今年{age}岁,住在{city}")# 尝试修改会报错# coordinates[0] = 15  # TypeError: 'tuple' object does not support item assignment

元组应用场景

    作为字典的键(因为列表不可哈希)

    函数返回多个值

    数据不应被修改的场景

# 元组作为字典键locations = {    (39.9116.4): "北京",    (31.2121.5): "上海",     (23.1113.3): "广州"}# 函数返回多个值def get_user_info():    return "张三"30"工程师"name, age, job = get_user_info()

4:字典与集合

字典基础

字典是键-值对的集合,访问速度非常快:

# 创建字典student = {    "name""小明",    "age": 15,    "scores": {"语文": 95, "数学": 90, "英语": 85}}# 访问元素print(student["name"])  # 输出:小明print(student["scores"]["语文"])  # 输出:95# 添加或修改元素student["gender"] = "男"student["age"] = 16# 检查键是否存在if "phone" in student:    print(student["phone"])else:    print("没有电话信息")

字典的高级用法

get()setdefault()方法:

# get方法:安全地获取值,如果键不存在返回默认值phone = student.get("phone""未知")print(phone)  # 输出:未知# setdefault:如果键不存在,设置默认值并返回student.setdefault("address", "北京")  # 添加新键值对print(student["address"])  # 输出:北京# 统计单词频率的实际应用text"苹果 香蕉 苹果 草莓 香蕉 苹果"words = text.split()word_count = {}for word in words:    # 如果单词不存在,设为1;已存在则+1    word_count[word] = word_count.get(word, 0) + 1print(word_count)  # {'苹果': 3, '香蕉': 2, '草莓': 1}

字典推导式

和列表推导式类似,可以用简洁的方式创建字典:

# 创建平方字典:{数字: 平方值}squares = {x: x**2 for x in range(16)}print(squares)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}# 反转字典的键值对inventory = {"苹果"10"香蕉"5"橙子"8}reversed_dict = {count: fruit for fruit, count in inventory.items()}print(reversed_dict)  # {10: '苹果', 5: '香蕉', 8: '橙子'}# 筛选字典scores = {"小明"95"小红"85"小刚"72"小丽"63}high_scores = {name: score for name, score in scores.items() if score >= 80}print(high_scores)  # {'小明': 95, '小红': 85}

集合

集合是不重复元素的无序集合,擅长去重和集合运算:

# 创建集合fruits = {"苹果""香蕉""橙子""苹果"}  # 注意重复的"苹果"会被自动去除print(fruits)  # {'香蕉', '橙子', '苹果'}# 集合运算a = {12345}b = {45678}print(a | b)  # 并集:{1, 2, 3, 4, 5, 6, 7, 8}print(a & b)  # 交集:{4, 5}print(a - b)  # 差集:{1, 2, 3}print(a ^ b)  # 对称差集:{1, 2, 3, 6, 7, 8}# 去重应用numbers = [122333455]unique_numbers = list(set(numbers))print(unique_numbers)  # [1, 2, 3, 4, 5]

集合的实际应用

# 比较两个文件中的共同单词file1_words = {"Python""编程""学习""基础""语法"}file2_words = {"Python""函数""类""编程""进阶"}# 两个文件共有的单词common_words = file1_words & file2_wordsprint(f"共有单词: {common_words}")  # {'Python', '编程'}# file1独有的单词only_in_file1 = file1_words - file2_wordsprint(f"只在file1中: {only_in_file1}")  # {'学习', '基础', '语法'}

5:第一天复盘与练习

单词频率统计项目

这个项目将结合我们学过的知识,读取文本文件并统计单词出现频率:

def word_frequency_counter(filename):    """    统计文本文件中单词出现的频率,并返回出现频率最高的10个单词    """    # 初始化一个空字典来存储单词计数    word_count = {}        try:        # 打开并读取文件        with open(filename, 'r', encoding='utf-8'as file:            # 读取所有内容并转换为小写            text = file.read().lower()                        # 去除标点符号(简化版,实际可能需要更多处理)            for char in ',.!?":;()[]{}':                text = text.replace(char, ' ')                            # 按空格分割单词            words = text.split()                        # 统计每个单词出现的次数            for word in words:                word_count[word] = word_count.get(word, 0) + 1        except FileNotFoundError:        print(f"错误:找不到文件 '{filename}'")        return {}            # 按频率排序并返回前10个单词    sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)    return dict(sorted_words[:10])# 测试函数if __name__ == "__main__":    # 假设我们有一个名为'sample.txt'的文件    result = word_frequency_counter('sample.txt')    print("出现频率最高的10个单词:")    for word, count in result.items():        print(f"'{word}': {count}次")

如何创建测试文件

可以创建一个示例文本文件来测试上面的代码:

# 创建一个示例文本文件with open('sample.txt''w', encoding='utf-8'as f:    f.write("""    Python是一种广泛使用的解释型、高级和通用的编程语言。Python支持多种编程范式,    包括面向对象、命令式、函数式和过程式编程。它拥有动态类型系统和垃圾回收功能,    能够自动管理内存使用,并且具有一个庞大而全面的标准库。Python由Guido van Rossum创建,    第一版发布于1991年。Python的设计哲学强调代码的可读性和简洁的语法,尤其是使用空格缩进来划分代码块。    Python编程语言经常被称为胶水语言,它可以把用其他语言制作的各种模块连接在一起。    """)

项目优化与拓展

    增加停用词过滤:忽略常见但无意义的词如"the"、"is"、"and"等

    添加词干提取:将不同形式的单词(如"run"、"runs"、"running")归为同一个词

    可视化结果:使用matplotlib绘制词频柱状图

# 添加停用词过滤功能def word_frequency_counter_improved(filename, stopwords=None):    """    增强版单词频率统计,支持停用词过滤    """    if stopwords is None:        stopwords = {"的""了""和""在""是""我""有""与"}            word_count = {}        try:        with open(filename, 'r', encoding='utf-8'as file:            text = file.read().lower()                        for char in ',.!?":;()[]{}':                text = text.replace(char, ' ')                            words = text.split()                        # 过滤停用词            filtered_words = [word for word in words if word not in stopwords]                        for word in filtered_words:                word_count[word] = word_count.get(word, 0) + 1        except FileNotFoundError:        print(f"错误:找不到文件 '{filename}'")        return {}            sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)    return dict(sorted_words[:10])

学习经验总结

完成这一天的学习后,应该掌握了Python的基础知识。以下是一些持续提高的建议:

    多练习,少记忆:编程是实践性很强的技能,多动手写代码

    阅读他人的代码:了解更多编程思维和最佳实践

    解决实际问题:寻找生活中可以用Python解决的小问题

    学习错误调试:不要害怕错误,从错误中学习

    持续学习:Python生态系统庞大,可以根据兴趣学习数据分析、Web开发、自动化等方向


🌟 小贴士:AI编程时代,已经不需要完全动手写代码,了解所有的语法,重点是理解含义,能看懂即可,不需要记语法!不需要记语法!不需要记语法!

本文使用 文章同步助手 同步

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

Python 编程入门 基础教程 数据结构
相关文章