(Python Primary) - 廖雪峰Python3 - 7.模块

本文介绍了Python3中的模块概念,包括模块的结构、如何自主编写模块及作用域规则。详细讲解了模块变量,特别是命令行参数的存储,以及公共和私有变量的区分。此外,还提到了安装第三方模块的方法,如使用pip,并讨论了Python解释器的搜索路径及如何添加额外的搜索目录。

7.模块

7.0介绍

  • 模块mycompany的结构如下,注意不可与python自带模块名称冲突
mycompany
├─ __init__.py
├─ abc.py
└─ xyz.py

7.1使用模块

7.1.1 自主编写一个hello模块

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

' a test module '

__author__ = 'Michael Liao'

import sys

def test():
    args = sys.argv
    if len(args)==1:
        print('Hello, world!')
    elif len(args)==2:
        print('Hello, %s!' % args[1])
    else:
        print('Too many arguments!')

if __name__=='__main__':
    test()
  • sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称

  • 运行python3 hello.py获得的sys.argv就是['hello.py']

  • 运行python3 hello.py Michael获得的sys.argv就是['hello.py', 'Michael']

7.1.2 作用域

  • public:abcx123PI等;

  • 特殊变量:__xxx__,如__name____author__

  • private:_xxx__xxx

private函数或变量是不应该被直接引用,而不是不能被直接引用,一般将private函数或变量进行封装和抽象,使外部不需要关心其内部细节

7.2安装第三方模块

  • 安装指令
pip install [-i https://pypi.tuna.tsinghua.edu.cn/simple]  package
  • 若Python2.x和Python3.x共存,使用pip3

  • PIL只支持Python2.7,可用Pillow取而代之

  • 使用Anaconda管理Python环境

  • 搜索模块路径

    • 默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中
    >>> import sys
    >>> sys.path
    ['', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', ..., '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']
    
    • 添加搜索目录
    >>> import sys
    >>> sys.path.append('/Users/michael/my_py_scripts')
    

参考教程

廖雪峰老师的Python3教程

(转载整理自网络,如有侵权,联系本人删除,仅供技术总结使用)

<think>嗯,用户是大三学生,想学习Python、Java、MySQL,然后开发小项目去找实习。首先,我需要确定他的目标是什么。他的主要目标应该是通过掌握这些技术,积累项目经验,从而找到实习机会。接下来,我要考虑他的背景:大三,可能已经有一定的编程基础,但需要明确他现在对编程的了解程度。比如,是否学过其他语言,或者有没有接触过数据库之类的。 然后,他提到的三个技术:Python、Java、MySQL。这三个都是比较实用的技能,但在实际应用中各有侧重。Python常用于数据分析、机器学习、后端开发(比如Django、Flask),而Java在企业级应用、安卓开发、后端(Spring)中使用较多。MySQL是数据库,无论前后端都需要掌握。不过,对于一个实习生来说,可能不需要全都精通,但至少要有基础,并且能展示出实际项目经验。 用户可能希望知道学习这些技术的路径,以及如何将它们结合起来做项目。同时,实习岗位可能更看重项目经验和实际能力,而非仅仅是理论知识。因此,学习路线应该偏向实践,尤其是项目驱动的学习。 接下来,我需要考虑如何合理安排学习顺序。通常,先学一门编程语言,比如Python,因为语法相对简单,容易上手,然后学数据库,再学另一门语言。或者,如果他时间紧张,可能需要同时学习,但这样可能会增加负担。不过,Python和Java都是面向对象的语言,有共通之处,但语法差异较大,可能需要分开学习。 然后是项目部分。小项目应该涵盖前后端,使用这些技术栈。比如,用Python做后端,Java可能暂时用不上,或者用Java做后端,结合MySQL。或者,根据实习的方向,选择合适的技术栈。例如,如果目标是Web开发,可能需要学习Spring(Java)或Django(Python),再结合数据库。 另外,用户可能没有明确的方向,比如前端还是后端,所以需要建议他先确定兴趣领域,再选择相应的技术深入学习。不过,作为实习生,可能要求全栈的基本能力,所以需要涵盖前后端和数据库。 还需要考虑时间安排。大三学生可能还有课程,需要平衡学习时间。建议制定一个三个月左右的学习计划,分阶段学习,每个阶段完成一个小项目,逐步积累。 最后,关于找实习,除了技术能力,还需要准备简历、面试技巧,刷题(LeetCode)等。可能需要提醒用户注意这些方面,同时积极参与开源项目或者实习申请。 可能存在的误区:用户可能想同时学习Python和Java,但这样容易混淆,建议先精通一门,再学另一门。或者,用户可能过于关注语言本身,而忽略了框架和工具的学习,比如Django或Spring。此外,数据库不仅仅是MySQL的使用,还需要了解设计、优化等。 总结下来,回答的结构应该是:学习路线规划(分阶段),技术学习重点,项目建议,实习准备建议。同时要提醒他注重实践,多动手做项目,并准备好面试相关的知识。</think>我会根据你的目标(开发项目、找实习)为你梳理一个清晰的Python学习路径,并整合Java和MySQL的学习建议,分阶段帮你规划。以下是具体步骤: ### 一、Python基础阶段(2-3周) 1. **核心语法快速掌握** - 变量/数据类型/运算符 → 用$3 \times (a + b)$这种数学表达式练习 - 控制流(if-else/for/while)→ 实现斐波那契数列 - 函数/模块 → 封装文件处理工具 - 异常处理 → 编写带错误检测的计算器 2. **重点数据结构** ```python # 示例:用字典统计词频 text = "apple banana apple" word_count = {} for word in text.split(): word_count[word] = word_count.get(word, 0) + 1 ``` ### 二、MySQL基础(1周) 1. **基础操作** ```sql CREATE TABLE students ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, score DECIMAL(5,2) ); ``` 2. **重点掌握** - 多表JOIN操作 - 索引优化原则 - 事务ACID特性 ### 三、项目开发阶段(核心) #### 第一阶段:Python+MySQL小项目 **推荐项目1:图书馆管理系统** ```python # 示例代码结构 class BookManager: def __init__(self, db_conn): self.conn = db_conn def add_book(self, title, author): with self.conn.cursor() as cursor: cursor.execute("INSERT INTO books VALUES (%s, %s)", (title, author)) ``` **推荐项目2:疫情数据可视化** - 使用requests爬取数据 - 用matplotlib/pandas分析 - 部署到Flask/Django #### 第二阶段:Java补充学习 1. **Java语法重点** - 面向对象特性 - 集合框架 - 多线程处理 ```java // 示例:多线程售票 class Ticket implements Runnable { private int tickets = 100; public void run() { while(tickets > 0) { synchronized(this) { System.out.println(Thread.currentThread().getName() + ":" + tickets--); } } } } ``` ### 四、实习准备策略 1. **技术栈组合建议** - Web开发方向:Python(Django/Flask) + Java(Spring) + MySQL - 数据分析方向:Python(pandas/numpy) + SQL + 可视化 2. **高频面试考点** - Python装饰器原理 - 数据库索引B+树结构 - Java内存模型 - 手写快速排序算法 3. **简历优化技巧** - 项目描述采用STAR法则: ```text 图书馆管理系统(Situation) - Task:实现图书借阅/归还/查询功能 - Action:使用Python+MySQL开发,采用MVC架构 - Result:支持200+并发访问,响应时间<500ms ``` ### 五、学习资源推荐 1. **免费资源** - 雪峰Python教程(含实战项目) - LeetCode数据库专项练习 - Java官方Tutorial 2. **付费课程选择原则** - 确认包含完整项目实战 - 查看课程项目与企业需求匹配度 - 优先选择有代码review服务的 ### 六、时间管理建议 制定学习甘特图(样例): ``` 9月:Python基础 + MySQL → 完成1个小项目 10月:Java基础 → 重构Python项目为Java版本 11月:框架学习 → 开发完整全栈项目 12月:面试准备 + 投递简历 ``` **关键提醒**:建议先用Python快速出项目成果,再补充Java深度。实习面试更看重实际项目经验而非语言数量,建议重点打磨2-3个完整项目(包含需求文档+测试案例+部署记录)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值