拓冰建站拓冰建站
首页 / 资讯中心 / 正文

第一个程序:Hello World 的完整执行流程与排错指南(扩容优化版)

文章目录1.6 第一个程序Hello World 的完整执行流程与排错指南扩容优化版本节目标新增1.6.1 编写并运行 Hello World实例 1-8 优化版步骤代码逐行解析新增print 小拓展先了解后续章节细讲1.6.2 代码执行的全链路拆解硬件 软件协同流程示意文字版分阶段详解1.6.3 新手常见错误与排错实例 1-9 扩容版高频错误速查表老韩提示优化版1.6.4 小结优化版动手练一练新增下面给出1.6 节的“扩容 优化”版本。我保留了原书“零基础友好”的口吻和“老韩提示”主要做了 5 点增强更新报错信息补充 Python 3.10 更友好的新提示如括号未闭合提示( was never closed并保留旧版提示方便对照。补全基础解析新增#注释、print()默认换行、UTF-8 中文输出、print的sep/end小拓展。讲准执行链路把“源码 → 语法检查 → 编译字节码 → PVM 执行 → 系统调用”讲准确纠正“字节码直接交给 CPU”的模糊说法。扩充高频坑在原来的三类错误上新增引号未闭合、缩进错误、编码/环境问题形成更完整的新手排错表。增加实战与练习补充命令行/终端运行方式、交互式环境验证以及“动手练一练”。1.6 第一个程序Hello World 的完整执行流程与排错指南扩容优化版本节目标新增会新建并运行hello_world.py理解print()的基本用法。能从“硬盘 → 内存 → CPU → 输出设备”的角度说清两行代码的执行链路。能独立排查中文标点、拼写/大小写、括号或引号未闭合、缩进四类高频错误。会在 PyCharm 之外用命令行/终端运行 Python 脚本。1.6.1 编写并运行 Hello World实例 1-8 优化版步骤新建文件在 PyCharm 中右键项目 → New → Python File命名为hello_world.py。命名规范用小写英文 下划线如hello_world.py不要命名为print.py、sys.py等与标准库同名的文件保存路径尽量避免中文和空格能减少后续环境异常。输入以下代码# 输出欢迎语句# 开头是注释不会被执行print(Hello World!)print(跟老韩学Python开启运维开发之路)多种运行方式扩容方式 AIDE 内右键编辑区 → Run ‘hello_world’或点击右上角绿色三角按钮。方式 B终端/命令行在 PyCharm 底部 Terminal或系统命令行进入文件目录后执行python hello_world.pyWindows 若提示“不是内部或外部命令”可尝试py hello_world.py或python3 hello_world.py取决于安装时是否加入 PATH 以及版本。方式 C交互环境验证命令行输入python回车出现后逐行输入print(Hello World!)并回车可立即看到结果输入exit()退出。适合临时验证单行语法。底部控制台输出结果Hello World! 跟老韩学Python开启运维开发之路恭喜你第一行 Python 代码运行成功了代码逐行解析新增# 输出欢迎语句#开头是注释Python 解释器会忽略它只给程序员看用来解释代码。print(Hello World!)调用内置函数print把字符串Hello World!输出到控制台。字符串必须用成对的英文引号单引号或双引号都可以包裹。第二条print再输出一行中文。Python 3 的源码默认按UTF-8读取PyCharm 新建文件默认也是 UTF-8所以中文可以直接写如果因编码报错请检查 File Encoding 是否为 UTF-8。为什么是两行因为print()默认在结尾加一个换行符等价于end\n调用两次print就输出两行。print 小拓展先了解后续章节细讲print(Hello,World,sep-)# 多个参数用 sep 指定的符号连接输出Hello-Worldprint(第一行,end)# end 改为空字符串结尾不换行print(第二行)# 因为上一行没换行这里会接在同一行后面输出print(A\nB)# \n 是换行转义符一条 print 也能输出两行1.6.2 代码执行的全链路拆解硬件 软件协同不要只满足于“跑起来了”。结合前面讲的硬件知识把整条链路拆透流程示意文字版[编辑器] --保存-- 硬盘: hello_world.pyUTF-8 文本 | 点击运行 / 执行 python hello_world.py v 操作系统启动 Python 解释器进程 v 硬盘: python解释器 -- 内存: 解释器 读入 .py 源码 v 语法检查 / \ 有语法错误 通过 | | 抛 SyntaxError 编译为字节码 无任何输出 __pycache__/*.pyc 缓存 | v PVMPython虚拟机逐条执行字节码 | v print() - 系统调用 write - 标准输出 stdout | v PyCharm 控制台 / 终端显示结果 | v 执行完毕 - 垃圾回收、关闭 stdout、释放内存 - 进程退出分阶段详解编写保存阶段你在 PyCharm 里写的代码保存后以hello_world.py文件形式存储在硬盘上本质是一个 UTF-8 文本文件。启动运行阶段点击运行后PyCharm 根据运行配置调用配置好的 Python 解释器本质是操作系统创建一个新进程来运行python。加载内存阶段操作系统把 Python 解释器程序如python.exe/python3加载进内存解释器再把.py源码读入内存此时.py是被当作“源代码文本/数据”读取不是直接当机器指令执行。语法检查阶段细化解释器做词法、语法分析。以文件方式运行时是整个模块先做语法检查。若发现SyntaxError如中文括号、括号/引号未闭合程序立即终止不会执行任何print所以控制台没有任何输出。这是“语法错误”和“运行时错误”的重要区别。编译为字节码语法通过后源码被编译成 Python字节码bytecode并通常缓存到__pycache__/hello_world.cpython-3xx.pyc下次源码未改动时CPython 会直接加载缓存字节码、跳过编译从而加快启动。解释执行阶段字节码由Python 虚拟机PVM逐条执行CPython 的 PVM 由 C 语言实现最终转换成 CPU 能执行的机器指令由 CPU 完成运算。注意不是把源码或字节码直接“交给 CPU”执行而是“解释器运行在 CPU 上边解释边执行”。输出结果阶段执行到print()时解释器调用sys.stdout.write()通过操作系统系统调用把字符串写入标准输出流stdoutPyCharm 的 Run 控制台捕获这个输出并显示出来。程序结束阶段所有字节码执行完毕Python 进入退出流程刷新并关闭 stdout、进行垃圾回收GC、释放占用的内存进程终止操作系统回收资源。补充在交互式环境中才是“输入一行、编译一行、执行一行”的逐行模式而运行.py文件是“先整体语法检查 编译再整体执行”。1.6.3 新手常见错误与排错实例 1-9 扩容版故意踩坑也是学习的一部分。试着修改代码观察报错建立对错误信息的认知。高频错误速查表类别错误代码故意写错典型报错信息原因与解决中文标点printHello WorldSyntaxError: invalid character (UFF08)中文引号“”也会报invalid character “使用了全角符号。解决切换英文输入法所有括号、引号、逗号、冒号都用英文半角PyCharm 会用红色波浪线实时提示。拼写/大小写Print(Hello World)NameError: name Print is not definedPython 严格区分大小写内置输出函数必须全小写print。写成PRINT、prnit、printf都会报NameError。括号未闭合print(Hello WorldPython 3.10SyntaxError: ( was never closedPython 3.9 及更早SyntaxError: unexpected EOF while parsing左括号没有配对的右括号。报错插入符常指向文件末尾或下一行真正遗漏往往在上面要往前找。利用编辑器的括号匹配高亮排查。引号未闭合新增print(Hello World)Python 3.10SyntaxError: unterminated string literal (detected at line 1)旧版SyntaxError: EOL while scanning string literal字符串开始的引号没有结束。单引号和双引号都可以但必须成对且前后一致如Hello或Hello不能写成Hello。缩进错误新增行首多写空格print(Hello World)IndentationError: unexpected indentPython 用缩进表示代码块顶级代码必须顶格。只有if/for/while/def/class等语句后才需要缩进。混用 Tab 与空格还会报TabError。统一用4 个空格缩进。编码/环境新增文件被存为 GBK 且含中文SyntaxError: (unicode error) utf-8 codec cant decode byte...Python 3 默认按 UTF-8 读取源码。解决PyCharm 右下角或 File → File Encoding 改为UTF-8并重新保存。解释器未配置新增—PyCharm 提示No Python interpreter configured for the project到 Settings / Preferences → Python Interpreter选择本机已安装的 Python 解释器。老韩提示优化版学编程不要怕报错报错是最好的老师。排查错误三步走看报错类型SyntaxError说明语法/符号不对程序还没真正运行NameError多是大小写、拼写或名字没定义IndentationError/TabError是缩进问题TypeError常是类型用错。看报错行号和^插入符它指出解释器“发现问题”的位置。注意语法错误括号/引号未闭合的插入符经常落在文件末尾或下一行真正遗漏往往在上面那几行要往前翻。看错误描述直译就能定位如was never closed 括号没关not defined 名字没定义unexpected indent 出现了不该有的缩进unterminated string literal 字符串没写完。借助 IDEPyCharm 在运行前就用红色/黄色波浪线标出大多数问题鼠标悬停看提示底部/右侧“Problems”面板会集中列出。绝大多数新手错误都是符号、拼写、缩进问题对照提示很容易定位。1.6.4 小结优化版print()是 Python 最基础的输出函数字符串用成对的英文单/双引号包裹默认输出到控制台并换行end\n。#开头是注释不参与执行用于解释代码。代码执行完整链路硬盘存储(.py 文本) → 启动解释器进程 → 载入内存 → 语法检查 → 编译字节码(.pyc) → PVM 执行 → 系统调用写入 stdout → 控制台显示 → 释放资源、进程退出。语法错误会在“语法检查”阶段被拦截不会有任何输出。Python 3.10 常见报错中文全角符号 →invalid character Print大写 →NameError括号未闭合 →SyntaxError: ( was never closed引号未闭合 →unterminated string literal多余缩进 →IndentationError: unexpected indent。新手最常见错误由原来的三类扩充为四类中文标点、拼写/大小写、括号或引号未闭合、缩进错误。所有代码符号必须使用英文半角缩进统一用4 个空格这是零基础的第一准则。排错口诀看类型、看行号与插入符、看描述善用 PyCharm 实时波浪线。动手练一练新增新建hello_world.py用3 次print依次输出Hello World!、你的名字、一句座右铭。改成一条print输出同样的三行提示用\n换行转义符。故意制造并修复下面 5 个错误把每次的报错信息抄下来中文括号、把print写成Print、删掉右括号、删掉右引号、在print前加 4 个空格。打开 PyCharm 的 Terminal执行python hello_world.py再执行python -V查看解释器版本。输出带引号的一句话print(老韩说\Hello World!\)或写成print(老韩说Hello World!)体会引号嵌套的写法。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门