Python简介_廖雪峰的Python3.x教程

Shell 和 Python 初学者必知:特点、限制、适用场景与学习资源

Shell 简介

Shell 是一种命令行解释器,能让用户和操作系统内核交互,Shell 脚本常用于系统管理、执行系列命令和处理文本数据。

Shell 的主要特点:

  • 简单易用,学起来不难,做基本系统操作方便。
  • 常用于系统管理,像文件、进程、用户管理等。
  • 能把命令写成脚本,自动执行。
  • 能直接用系统命令和工具。

【案例】可以用 Shell 写个每天定时备份重要文件的脚本:

bash
#!/bin/bash
# 备份目录
BACKUP_DIR="/backup"
SOURCE_DIR="/data"

# 创建备份目录(如果不存在)
if [! -d "$BACKUP_DIR" ]; then
    mkdir -p "$BACKUP_DIR"
fi

# 执行备份
tar -czf "$BACKUP_DIR/$(date +%Y%m%d).tar.gz" "$SOURCE_DIR"

Python 简介

Python 是高级编程语言,优点很多,像语法简单清晰、有丰富的库、能跨平台、支持面向对象编程。

Python 的优点包括:

  • 语法简洁清晰:代码可读性强,易于理解和维护。
  • 丰富的库:拥有大量的第三方库,如 NumPy、Pandas、matplotlib 等,能够快速实现各种功能。
  • 跨平台:可以在多种操作系统上运行,无需修改代码。
  • 面向对象:支持面向对象编程,提高代码的可扩展性和可维护性。

【案例】用 Python 可以实现一个简单的 Web 服务器:

# 导入 http.server 模块,用于处理 HTTP 请求
import http.server
# 导入 socketserver 模块,提供网络服务器的基础架构
import socketserver

# 设置服务器监听的端口为 
PORT = 

# 定义处理 HTTP 请求的处理器
Handler = http.server.SimpleHTTPRequestHandler

# 创建一个基于 TCP 的服务器,并指定地址和端口以及处理器
with socketserver.TCPServer(("", PORT), Handler) as httpd:
    # 打印服务器正在监听的端口信息
    print(f"Serving at port {PORT}")
    # 启动服务器,使其持续运行并处理请求
    httpd.serve_forever()

这个脚本能创建一个简单的 HTTP 服务器,在本地监听 端口,处理 HTTP 请求。比如做简单文件共享、测试网页或者做些 HTTP 开发调试很有用。

Shell 的局限和缺点

  • 性能一般,处理大数据和复杂计算不太好。
  • 语法灵活但复杂脚本时不好维护和阅读。
  • 处理结构化和复杂数据操作不如 Python 这类专门语言。
  • 没有像 Python 里的丰富数据结构。

Python 的局限和缺点

  • 运行速度比 C、C++ 这类编译型语言慢,计算密集型任务不太适合。
  • 内存消耗可能多,有些内存受限环境不太好。
  • 移动开发支持一般,不如 Java、Swift 这些专门语言。

Shell 的适用场景

  • 系统管理和运维,像文件操作、进程管理、设置环境变量,比如定期清理过期日志文件。
  • 写简单自动化脚本,执行重复命令,比如每天自动备份特定目录文件。
  • 和操作系统交互,快速获取系统信息、执行系统命令。

Python 的适用场景

  • 数据科学和分析,用 Pandas、NumPy 处理大量数据,比如分析销售数据。
  • Web 开发,用 Django、Flask 做网站和应用,比如建个在线博客平台。
  • 科学计算和模拟,在物理、数学领域做复杂计算和模拟,比如模拟天体运动。
  • 人工智能和机器学习,用 TensorFlow、PyTorch 训练模型,比如训练图像识别模型。
  • 开发日常小工具,实现有逻辑的实用功能,比如做个自动转换文件格式的工具。

Python 脚本的版本要求

Python 脚本在版本上是有要求的,不同版本在语法、内置函数、库兼容性上可能不同。新特性和语法旧版本可能不支持,第三方库也可能对版本有要求。要是把脚本部署到只支持特定版本(比如 )的服务器,开发时就得用这个版本或兼容的,别用高版本才有的特性。

解决 Python 脚本版本兼容性问题的方法:

  1. 用 __future__ 模块,能在旧版本里用新版本的特性,比如在 Python 2 里用 Python 3 的除法行为。
    from __future__ import division
  1. 条件导入,根据版本不同导入不同模块或执行不同代码块。
    import sys
    if sys.version_info[0] == 2:
        import some_module_v2 as some_module
    elif sys.version_info[0] == 3:
        import some_module_v3 as some_module
  1. 遵循向后兼容性原则,多用通用稳定的语法和函数,别用被弃用或版本变化大的。
  2. 用专门的库,像 six 能解决 Python 2 和 3 的兼容性问题。
  3. 做版本检测和适配,在脚本开头检测版本,按版本执行相应逻辑。
  4. 用虚拟化和容器化技术,像 virtualenv 或 Docker 保证特定一致的版本环境。
  5. 多做测试,在多个版本上测试确保兼容性。
  6. 重构代码,让它在不同版本都能简单清晰实现功能。

判断 Python 脚本是否需要解决版本兼容性问题的方法:

  1. 确定运行环境,要是脚本要在可能有不同 Python 版本的环境(比如不同服务器)运行,就得考虑兼容性。
  2. 检查用的特性和库,要是用了特定版本的新特性或库对版本有要求,可能有兼容性问题。
  3. 参考项目需求和规范,要是规定支持多个版本或不同操作系统(默认版本不同),就得处理兼容性。
  4. 与其他代码集成时,要是其他代码基于不同版本开发,可能有兼容性问题。
  5. 看社区和用户反馈,开源或面向大众的脚本,收到某些版本运行出错的反馈,就是有兼容性问题。
  6. 考虑行业趋势和常见场景,像数据科学领域可能同时用 Python 2 和 3,这种情况就得注意兼容性。

查阅 Python 模块消息的途径

  1. Python 官方文档,最权威全面,能查到模块的功能、用法、参数、返回值等。
  2. 在线教程和博客,像菜鸟教程、廖雪峰的教程。
  3. 代码托管平台,比如 GitHub 项目的 README 里可能有模块说明。
  4. 问答社区,像 Stack Overflow 能搜到模块相关问题和解答。
  5. Python 集成开发环境(IDE)的文档提示,像 PyCharm 会在导入模块和用函数时提供提示。

适合 shell 初学者的在线教程网站

  1. 菜鸟教程,有基础的 shell 教程,包括基础知识和运行方法。网址:https://www.runoob.com/linux/linux-shell.html
  2. 知乎专栏,黑马程序员 shell 视频教程,讲得通俗易懂。链接:https://zhuanlan.zhihu.com/p/
  3. tutorialspoint,学习各种编程语言的网站,里面的 shell 教程适合新手。网址:https://www.tutorialspoint.com/unix_shell/index.htm
  4. Linux 命令行,免费在线书网站,介绍 Linux 命令行和 shell 编程知识。教程地址:https://www.linuxcommand.org/lc3_learning_the_shell.php
  5. Bash 黑客维基,社区驱动的维基网站,有很多 Bash 编程的信息、教程和技巧。网址:https://bash-hackers.org
  6. Codecademy,有交互式课程教命令行和 shell 脚本编程。课程链接:https://www.codecademy.com/learn/learn-the-command-line
  7. Coursera 和 EdX,可能有 shell 编程相关课程,有不同层次的。Coursera 网址:https://www.coursera.org/ ;EdX 网址:https://www.edx.org/

适合 Python 初学者的在线教程网站及地址

  1. 廖雪峰 Python3 教程:https://www.liaoxuefeng.com/wiki/ 由廖雪峰编写,介绍 Python3 语法、函数、模块等,有实例练习。
  2. 菜鸟教程 Python3 教程:https://www.runoob.com/python3/python3-tutorial.html 涵盖基础语法、函数、模块,有实例练习。
  3. Python 官方文档:https://docs.python.org/zh-cn/3/ 是学习 Python 必备,有语言规范、标准库和第三方库等,有参考示例,对进阶学习也有用。
  4. 实验楼 Python 教程:https://www.lanqiao.cn/courses/?tag=python 基于实验和项目,涵盖语法、数据结构、Web 开发、数据分析等,有在线实验环境和项目。
  5. Codecademy Python 课程:https://www.codecademy.com/learn/learn-python-3 通过互动实践帮掌握语法、函数、循环等,有反馈和社区支持。
  6. Python123:https://python123.io 提供基础、Web 开发、数据分析教程,有代码实战和视频课程,内容全面,操作方便。
  7. dida100-Python 学习笔记:http://www.dida100.com/its 有丰富学习资源,包括语法、数据类型、函数、模块、Web 开发、数据分析等,有课程、练习题和实践项目。
  8. w3school:http://www.w3school.com.cn/ 资源免费,实例丰富内容全,有测试,还有其他编程语言和 HTML 标签内容。
  9. pythoncodeexample:https://www.programcreek.com/python/ 英文网站,收集大量 Python 模块实例,能搜索查找。
  10. learnpython:https://www.learnpython.org/ 有初级和高级用法,教程分组有序。
原文链接:,转发请注明来源!