Day04 · 程序入门

Day04 · 程序入门

阶段:阶段一 · 核心基础 | 前置:Day02 | 技术基准:Python 3.15.0

学习目标

  • 掌握 Python 程序的两种运行方式:交互式 Shell 与脚本文件
  • 写出人生中第一个真正的 Python 程序 Hello World
  • 熟练使用 IDLE 的常用快捷键,提升输入效率
  • 会写四种注释:单行注释、多行注释、文档字符串,并理解"编码注释在 Python 3 中已不再需要"
  • 学会使用 Python 的帮助系统:官方文档、help()、dir()、__doc__

一、两种运行方式

Day02 我们把 Python 3.15.0 装好了,也见过 IDLE。从今天开始,小嘉带你正式写程序。Python 运行一段代码有两种最基本的方式,必须分清楚。

1.1、交互式 Shell(REPL)

打开命令提示符(Win+R 输入 cmd),直接输入 python 回车,就进入了交互式 Shell ,提示符是 >>>:

text 复制代码
Python 3.15.0 (tags/v3.15.0, ...) on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

在 >>> 后面输入一行代码,回车立刻执行并显示结果。这种"读入(Read)---求值(Eval)---打印(Print)---循环(Loop)"的环境,简称 REPL。

python 复制代码
>>> 1 + 2 * 3
7
>>> print("Hello, World!")
Hello, World!
>>> "跟小嘉学习 Python"
'跟小嘉学习 Python'

交互模式适合试一小段代码、验证一个想法 ,缺点是关掉窗口写过的代码就没了。输入 exit() 或按 Ctrl+Z 回车退出。

1.2、脚本文件(Script)

真正的项目要把代码保存在文件里。用任意文本编辑器(IDLE、VSCode、PyCharm 都行)写代码,保存为 *.py 文件,再用命令行运行:

bash 复制代码
python hello.py

下面就是你的第一个脚本文件,保存为 hello.py:

python 复制代码
# Author: XiaoJia
# 我的第一个 Python 脚本
print("Hello, World!")
print("跟小嘉学习 Python 程序设计")

命令行输出:

text 复制代码
Hello, World!
跟小嘉学习 Python 程序设计

小嘉提醒:print 在 Python 3 中是函数 ,必须加括号写成 print("...")。旧教程里的 print "Hello"(不带括号)是 Python 2 的写法(Python 2 遗留,已移除),在 3.15 里会直接报 SyntaxError。

二、Hello World 的仪式感

几乎所有编程语言的第一门课都从 Hello World 开始,这是程序员之间的传统。它虽然只有一行,却包含了"程序---输出"的完整闭环。

python 复制代码
# 第一个程序:向世界问好
print("Hello, World!")

运行它,控制台(Console)就会打印出 Hello, World!。接下来我们在这个基础上加一点东西:

python 复制代码
# Author: XiaoJia
# 带变量的 Hello World
name = "小嘉"
print("Hello, World!")
print("你好,", name)
print("欢迎来到 Python 3.15 的世界")

输出:

text 复制代码
Hello, World!
你好, 小嘉
欢迎来到 Python 3.15 的世界

注意 print 可以一次打印多个值,默认用空格隔开(这个 sep 参数 Day10 细讲)。

三、IDLE 常用快捷键

IDLE 是官方自带的编辑器,Day02 已经打开过。记住下面这些快捷键,写代码会快很多:

快捷键 作用
F5 运行当前脚本(Run Module)
Alt+P 上一条历史命令(交互模式)
Alt+N 下一条历史命令(交互模式)
Ctrl+N 新建文件
Ctrl+O 打开文件
Ctrl+S 保存文件
Ctrl+] / Ctrl+[ 增加 / 减少缩进
Alt+3 / Alt+4 注释 / 取消注释选中代码
Alt+/ 自动补全单词
Ctrl+F 查找
Ctrl+H 替换
Ctrl+C 中断正在运行的程序
F1 打开 Python 官方帮助文档
python 复制代码
# 在 IDLE 脚本模式下写好这段,按 F5 运行
for i in range(3):
    print("按 F5 运行第", i + 1, "次")

输出:

text 复制代码
按 F5 运行第 1 次
按 F5 运行第 2 次
按 F5 运行第 3 次

四、注释:写给人和未来的自己看的话

程序不是写完就不改了。为了让下次维护时(不管是别人还是三个月后的你)能看懂这段代码在干什么,就需要写注释(Comments)。注释会被解释器忽略,不会执行。

4.1、单行注释

以 # 开头,从 # 到行尾的内容都是注释:

python 复制代码
# 这是一个单行注释,整行都是说明
print("hello, world")   # 这是行尾注释,解释这行代码

4.2、多行注释(三引号)

要注释一大段内容时,用三个引号 """...""" 或 '''...''' 包起来:

python 复制代码
"""
这是多行注释的第一行
这是多行注释的第二行
这段内容整体不会被执行
"""
print("多行注释结束,开始执行")

4.3、文档字符串(Docstring)

放在函数、类、模块开头的三引号字符串,叫文档字符串(Docstring) ,它不是普通注释------它会被 Python 保留下来,可以通过 help() 或 .__doc__ 读取,专门用来生成使用说明:

python 复制代码
def greet(name):
    """打印一句问候语。

    参数:
        name: 问候对象的名字
    """
    print(f"Hello, {name}!")


greet("Alice")
print(greet.__doc__)   # 可以把文档字符串读出来

输出:

text 复制代码
Hello, Alice!
打印一句问候语。

    参数:
        name: 问候对象的名字

4.4、关于"编码注释"(Python 3 已不再需要)

旧教程开头常看到这样两行:

python 复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
  • 第一行 #!/usr/bin/env python 叫 shebang,只在 Linux/macOS 下直接运行脚本(./xxx.py)时告诉系统用哪个解释器,Windows 下无效,可写可不写。
  • 第二行 # -*- coding: utf-8 -*- 是编码声明------这是 Python 2 的遗留习惯(Python 2 默认 ASCII,源码里写中文必须声明)。

在 Python 3 中,源码文件默认就是 UTF-8 编码 ,这行编码注释不再是必须的(Python 2 遗留,现已冗余)。只要你的 .py 文件以 UTF-8 保存,里面直接写中文完全没问题。本课程所有文件都按 UTF-8 保存。

五、帮助系统:不懂就问 Python 自己

写代码时最常遇到的问题是"这个函数怎么用?参数有哪些?"。小嘉推荐四个由浅入深的查帮助手段。

5.1、官方文档

最权威的资料永远是官方文档:https://docs.python.org/3/ 。左侧是目录,右上角可切换版本,搜索框支持全文检索。

5.2、help():查看对象的完整说明

在交互模式里输入 help(对象名),就能看到它的参数、用法、注意事项:

python 复制代码
help(print)        # 查看 print 函数的帮助
help(str)          # 查看字符串类型的完整帮助
help("modules")   # 列出当前环境已安装的所有模块名

按空格翻页,按 q 退出帮助(进入 less 分页器)。

5.3、dir():列出对象有哪些属性和方法

dir() 能列出一个对象"能做什么",是探索新对象的利器:

python 复制代码
# 查看字符串 str 支持的所有方法名
print(dir(str))

输出(节选):

text 复制代码
['__add__', '__class__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'find', 'format', 'index', 'join', 'lower', 'lstrip', 'replace', 'split', 'strip', 'upper', ...]

下划线开头的(如 __add__)是内部魔术方法,先不管;其余如 find、split、replace 就是字符串常用方法(Day08 细讲)。

5.4、obj.__doc__:只看核心一句话

help() 内容很长,只想看一句话说明时,直接取对象的文档字符串:

python 复制代码
print(print.__doc__)

输出(节选):

text 复制代码
Prints the values to a stream, or to sys.stdout by default.

  sep
    string inserted between values, default a space.
  end
    string appended after the last value, default a newline.
  file
    a file-like object (stream); defaults to the current sys.stdout.
  flush
    whether to forcibly flush the stream.

5.5、BNF 语法与 Python 的多种实现(拓展了解)

  • **BNF(Backus-Naur Form,巴科斯范式)**是用来形式化描述编程语言语法的记号法。约定:<> 必选、[] 可选、{} 零次或多次、| 表示"或"、::= 表示"被定义为"。官方语言参考文档就是用 BNF 写的,以后深入读文档时会遇到。
  • CPython :用 C 语言写的官方 Python 实现,也是我们每天用的这个。此外还有 PyPy (自带 JIT,运行更快)、Jython (跑在 JVM 上)、IronPython(跑在 .NET 上)等。同一门语言、不同的实现,绝大多数代码可以通用。

练习题

  1. 在命令行用交互模式分别计算 2 ** 10、7 / 2、7 // 2,把结果记下来,猜猜 / 和 // 的区别。
  2. 新建 hello.py,用至少 3 行注释(单行、三引号多行、文档字符串各一种),运行后输出你的名字和一句自我介绍。
  3. 在 IDLE 里练习快捷键:用 Alt+P/Alt+N 翻历史命令,用 Alt+3/Alt+4 注释、取消注释一段代码,用 F5 运行。
  4. 在交互模式里执行 help(input),读一遍说明,然后执行 dir(list),列出你能看懂的 5 个列表方法名。
  5. 思考题:为什么 Python 3 的源码默认 UTF-8 后,# -*- coding: utf-8 -*- 这行注释就变成可有可无了?如果你的 .py 文件用 GBK 保存,里面写中文会怎样?

小结

  • Python 有两种运行方式:交互式 Shell(REPL,适合试小段代码)和脚本文件(.py,用 python 文件名.py 运行)。
  • Hello World 是程序入门的传统仪式,核心是 print() 函数;print 在 Python 3 中必须带括号。
  • IDLE 快捷键:F5 运行、Alt+P/N 翻历史、Alt+3/4 注释切换、F1 打开官方文档。
  • 注释四种:# 单行、"""...""" 多行、函数/类开头的文档字符串(可用 help()/__doc__ 读取);编码注释 # -*- coding -*- 是 Python 2 遗留,3 中默认 UTF-8 已不需要。
  • 查帮助四件套:官方文档 docs.python.org → help(对象) → dir(对象) 列方法 → 对象.__doc__ 看一句话。
  • 拓展:BNF 是描述语法的形式化记号;CPython 是官方实现,PyPy/Jython/IronPython 是其他实现。

扩展阅读

相关推荐
Alsn861 小时前
Windows 安装 Ollama 及本地模型部署
学习·1024程序员节
霂鳯1 小时前
新手勇闯网络安全 | MySQL基础(二)
1024程序员节
俊哥V1 小时前
每日 AI 研究简报 · 2026-10-24
人工智能·ai·1024程序员节
burg_xun1 小时前
【生命科学 Agent】推理平台(三)
人工智能·系统架构·1024程序员节
幼儿园蛋小黑1 小时前
STM32F103 入门指南:从芯片架构到第一个工程
1024程序员节
夜雪一千1 小时前
Linux 查看文件内容介绍
1024程序员节
4SAPI1 小时前
企业级文档智能处理大模型 API 架构选型指南:4SAPI、硅基流动与 OpenRouter 的工程权衡
人工智能·gateway·agent·1024程序员节·rag
昨日之日20062 小时前
MiniMax-H3 V7(FastH3 Omni):8步生成带声视频,比原版快近10倍。参考图、视频、声音全都能用!
人工智能·计算机视觉·音视频·1024程序员节
FPGA小迷弟2 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整指南
fpga开发·dsp开发·fpga·1024程序员节·sdr·无线电