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

发布时间:2026/8/31 21:43:30

第一个程序: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!)体会引号嵌套的写法。

相关新闻

机器人开发入门:从ROS2环境搭建到SLAM建图与自动导航实战

机器人开发入门:从ROS2环境搭建到SLAM建图与自动导航实战

2026/8/31 21:43:30

之前有不少同学问过机器人开发怎么入门,尤其是看到网上碎片化的资料,今天装个 ROS、明天看个 SLAM、后天又想碰 Nav2,结果一直没有把整条链路跑通。这篇文章就围绕“机器人开发从零到导航闭环”这条主线,把环境准备、核心概念、仿…

STEVAL-FCU001V2飞控板固件烧录与QGroundControl联调实战指南

STEVAL-FCU001V2飞控板固件烧录与QGroundControl联调实战指南

2026/8/31 21:43:30

花小三百块钱从渠道商手里淘来一块ST的飞控评估板STEVAL-FCU001V2,满怀期待地插上USB,结果电脑毫无反应,连虚拟串口都没多出来一个。这种开箱体验,大概劝退了不少人。我在这个板子上断断续续折腾了小一个月,从一块“认…

STM32H7 ADC采样值异常?CubeMX遗漏SBS_PMCR引脚重映射的排查与修复

STM32H7 ADC采样值异常?CubeMX遗漏SBS_PMCR引脚重映射的排查与修复

2026/8/31 21:43:30

最近调一块基于STM32H723的采集板,遇到一个让我卡了两天的问题:CubeMX把ADC、DMA、引脚初始化全给配好了,代码也能正常编译运行,但ADC采回来的电压值就是跟万用表实测对不上。一开始以为是硬件虚焊,后来查来查去&#…

USART2中断被网络函数覆盖?链接器符号冲突与名字遮蔽排查

USART2中断被网络函数覆盖?链接器符号冲突与名字遮蔽排查

2026/8/31 22:43:32

USART2中断明明配置没问题,收到的数据却总是不对劲,甚至直接进HardFault。把调试器接上去看,向量表里的入口地址指向了一个完全意想不到的位置——stai_network_run函数的内部。看到这句"USART2 Handler got overwrited by stai_network…

STM32音乐喷泉:从ADC采样、FFT频谱到PWM控制全解析

STM32音乐喷泉:从ADC采样、FFT频谱到PWM控制全解析

2026/8/31 22:43:32

STM32 音乐喷泉是一个很有代表性的嵌入式实训项目:音乐信号经过 ADC 采样,在 MCU 内部做 FFT 频谱提取,再把低频、中频、高频能量映射成水泵调速 PWM 和 RGB 灯光效果。它几乎把 STM32 开发中经常遇到的外设配置、数据处理、实时调度和硬件调…

DMA从地址+偏移处启动:串口环形缓冲与STM32实战

DMA从地址+偏移处启动:串口环形缓冲与STM32实战

2026/8/31 22:43:32

做嵌入式有一类需求看着不起眼,真上手却能把人绕晕:DMA传输时,不从内存数组的头部开始,而是要从"第N个元素"的位置开始。也就是标题里这句话:Start transfer from address offset。我在一个串口DMA环形缓冲…

STM32N6外部Flash启动:BootROM与XSPI链路全解析

STM32N6外部Flash启动:BootROM与XSPI链路全解析

2026/8/31 22:43:32

1. 引言:一块芯片的“第一次眨眼”拿到STM32N6开发板的第一周,我没急着跑AI Demo,反而和BootROM较上了劲。原因很简单:N6这颗芯片内部没有Flash,用户代码的归宿只能是外部存储器,而BootROM作为芯片出厂固化…

AI推荐趋同现象剖析:从多模型测试到规避策略

AI推荐趋同现象剖析:从多模型测试到规避策略

2026/8/31 22:43:32

最近在做一套电商导购类 AI 应用的评测时,我发现一个很有意思的现象:当我把同一个商品推荐问题分别抛给多个主流 AI 助手,得到的答案惊人地相似,甚至出现了一款定价 50 万美元的“天价床垫”被反复推荐的情况。这背后不是单纯的 A…

知乎煤矿矿井监控数据集YOLOv11训练完整代码 YOLOv11训练完整代码 对煤矿工人、压缩氧气自救装置、采矿头盔、钻杆、钻机、矿工与钻杆交互

知乎煤矿矿井监控数据集YOLOv11训练完整代码 YOLOv11训练完整代码 对煤矿工人、压缩氧气自救装置、采矿头盔、钻杆、钻机、矿工与钻杆交互

2026/8/31 22:33:32

c 对煤矿工人、压缩氧气自救装置、采矿头盔、钻杆、钻机、矿工与钻杆交互情况进行标注,累计超过10万帧视频图像进行标注,VOC和coco两种标注格式,数据集共34GB数据量数据1:煤矿工业场景煤矿工人检测数据集,标注类别&…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/8/31 1:38:25

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/8/31 7:20:57

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/8/31 17:18:46

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

MCU无DAC如何用定时器+DMA 2D输出高保真任意波形

MCU无DAC如何用定时器+DMA 2D输出高保真任意波形

2026/8/31 0:02:27

接到一个仪表类项目,要在 LAT1189 上输出几种不同波形:正弦、三角、带可调死区的脉冲,频率和幅度都得能实时改。板子上没有 DAC,就一个定时器加几个 DMA 通道。我一开始觉得在定时器中断里改比较寄存器也能应付,后来把…

Cortex-M3 Flash下载失败?从编程错误标志到供电瞬态排查

Cortex-M3 Flash下载失败?从编程错误标志到供电瞬态排查

2026/8/31 0:02:27

前两周调试一块带着Cortex-M3内核的板子,IDE里下载固件时突然弹出一行刺眼的错误: error: flash download failed - cortex-m3 。这种报错在嵌入式开发里太常见了,常见到很多人第一反应就是换根数据线、重插一下调试器,但重启三…

STM32 TouchGFX屏幕切换Transition优化:原理、配置与排障实战

STM32 TouchGFX屏幕切换Transition优化:原理、配置与排障实战

2026/8/31 0:02:27

做STM32 GUI开发的朋友应该都有体会——界面搭得再漂亮,一旦屏幕切换卡成PPT,整个产品的档次瞬间就没了。早期我在LAT1212这个基于STM32的GUI工程上用TouchGFX做二次开发,最头疼的不是画界面,而是怎么让切换动画既流畅又自然。Tou…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/31 17:18:51

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/31 17:18:48

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/31 17:18:48

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…