Python入门:写出你的第一行Python代码
一、开篇:真正的编程从这一行开始
前面七篇文章,我们一直在做准备工作——装Python、配环境、选编辑器。今天终于到了最激动人心的时刻:正式写代码。
⌨️ 编程说到底就一件事:用代码让计算机按你的想法工作。而这一切,都从在屏幕上打印出一行文字开始。这行文字像是一扇门——推开它,你就进入了编程的世界。
这一篇我会带着你,从最基础的Python交互环境开始,到创建完整的Python脚本文件,再到理解Python代码的基本执行逻辑。我们不赶进度,每一个细节都要搞明白。
二、三种运行Python的方式
在正式开始之前,你需要知道Python代码有三种运行方式。每种方式都有自己的适用场景。
2.1 方式一:交互式环境(Python REPL)
打开命令行,输入python(Mac/Linux输入python3),进入交互式环境:
C:\Users\你的用户名>python Python3.12.1(tags/v3.12.1:2305ca5, Dec72023,22:03:25)[MSC v.193764bit(AMD64)]on win32 Type"help","copyright","credits"or"license"formoreinformation.>>>看到>>>这个符号了吗?这是Python在说:“我准备好了,请输入你的命令”。
在这个环境中,你输入一行代码,按回车,Python立刻执行并显示结果:
>>>print('Hello, Python!')Hello,Python!>>>1+12>>>'你好'*3'你好你好你好'>>>importmath>>>math.sqrt(16)4.0💡 交互式环境适合快速验证想法、测试一小段代码、临时计算。但它不适合写长程序,因为代码无法保存。
退出交互式环境:输入exit()或按Ctrl + Z(Windows)/Ctrl + D(Mac/Linux)。
2.2 方式二:运行Python脚本文件
把代码写在.py文件里,然后一次性地让Python执行整个文件。这是日常开发的主要方式。
① 创建一个文件hello.py,打开它(用记事本、VS Code、PyCharm都行)
② 输入以下代码:
# 这是我的第一个Python脚本print('='*40)print('Hello, Python 世界!')print('今天开始,我要学编程了!')print('='*40)③ 在命令行中运行:
python hello.py④ 输出结果:
======================================== Hello, Python 世界! 今天开始,我要学编程了! ========================================✅ 你刚刚创建并运行了你的第一个Python程序。虽然它只是打印了几行文字,但这是万里长征的第一步。
2.3 方式三:IDE中的运行
在PyCharm或VS Code中打开.py文件,点击运行按钮▶。IDE会在后台调用Python解释器来执行你的脚本,并把输出结果显示在IDE的终端面板里。
这和命令行运行本质完全一样,只是IDE帮你省去了手动输入命令的步骤。
三、你的第一行代码:解剖 print()
3.1 print() 的基本用法
print('Hello, World!')这行代码看起来很简单,但让我们逐字拆解,搞懂每一个部分:
print:函数名。函数就是一段包装好的、能做特定事情的代码。print这个函数做的事情是"把内容显示到屏幕上"():括号,表示"调用"这个函数。在Python中,调用函数必须加括号,即使是空括号'Hello, World!':参数。这是传给print函数的数据,告诉它"把这个字符串显示在屏幕上"- 整个
print('Hello, World!')就是一句完整的"调用print函数并传入字符串参数的语句"
3.2 print() 可以打印多种类型的数据
# 打印字符串print('你好,世界!')# 打印数字print(42)print(3.14159)# 打印表达式的结果(先计算,后打印)print(1+2+3+4+5)# 打印布尔值print(True)print(False)# 打印多个内容(用逗号分隔)print('答案:',42,'正确:',True)# 打印列表print([1,2,3,4,5])运行这些,你会看到Python的print()函数几乎能打印任何类型的数据,不需要像有些语言那样先转成字符串。
3.3 print() 的默认行为
# 每次print默认换行print('第一行')print('第二行')print('第三行')输出:
第一行 第二行 第三行# 用end参数改变结束字符(默认是换行符\n)print('第一行',end=' ')print('第二行',end=' → ')print('第三行')输出:
第一行 第二行 → 第三行# 用sep参数改变多个值之间的分隔符(默认是空格)print('苹果','香蕉','橘子',sep=' | ')print(2025,5,30,sep='-')输出:
苹果 | 香蕉 | 橘子 2025-5-30📝 这就是print()函数的三个最常用参数的完整形态:
print(*objects,sep=' ',end='\n')# *objects: 要打印的内容(可以多个)# sep: 多个内容之间的分隔符,默认为空格' '# end: 打印结束时的字符,默认为换行符'\n'四、理解"代码执行"的过程
4.1 逐行执行
Python代码是从上到下,逐行执行的。这是最基本也是最重要的规则。
print('第一步:程序开始执行了')name='小明'print('第二步:变量name已经被创建了')age=25print(f'第三步:{name}今年{age}岁')print('第四步:程序执行完毕')输出:
第一步:程序开始执行了 第二步:变量name已经被创建了 年龄:25 第三步:小明今年25岁 第四步:程序执行完毕每一行按顺序执行,前面的代码执行完才执行后面的代码。这个规则虽然简单,但它是理解所有Python程序的基础。
4.2 变量在运行中的变化
# 变量的值在程序运行过程中可以改变score=80print(f'初始分数:{score}')score=score+5# 加5分print(f'加分后:{score}')score=score-10# 扣10分print(f'扣分后:{score}')score=100# 直接重置为100print(f'重置后:{score}')输出:
初始分数:80 加分后:85 扣分后:75 重置后:100⚠️ Python程序执行的基本原则:
- 从上到下,逐行执行
- 变量"后定义的覆盖先定义的"
- 每一行代码执行时,使用的都是变量当前的值
五、Python中的错误信息阅读指南
初学编程,遇到错误是不可避免的。能把错误信息读懂,是编程水平的一个重要标志。
5.1 语法错误(SyntaxError)
>>>print('hello'File"<stdin>",line1print('hello'^SyntaxError:unexpected EOFwhileparsing当Python遇到无法理解的代码结构时,会抛出SyntaxError。常见原因:
- 括号没配对(开了没关)
- 字符串的引号没配对
- 冒号忘了写
- 缩进不对
💡 阅读错误信息的方法:从最后一行开始读。错误信息最后一行通常最直接地告诉你出了什么问题。然后看上面的行号定位到具体位置。
5.2 名称错误(NameError)
>>>print(name)NameError:name'name'isnotdefined使用了还没有定义过的变量名。解决方法:检查变量名拼写是否正确,或者在使用前先定义它。
5.3 类型错误(TypeError)
>>>print('数字:'+5)TypeError:can only concatenatestr(not"int")tostr把不同类型的数据用错了地方。这里不能用+直接连接字符串和数字。应该这样:
print('数字:'+str(5))# 把数字转成字符串print('数字:',5)# 用逗号分隔print(f'数字:{5}')# 用f-string5.4 缩进错误(IndentationError)
>>>ifTrue:>>>print('hello')# 这行没有缩进!IndentationError:expected an indented blockPython用缩进来划分代码块。if、for、while等语句后面必须跟缩进的代码块。
✅ 面对错误时的心态:错误是朋友,不是敌人。每个错误信息都在告诉你哪里出了问题,帮你改进代码。不要一看到红色的错误就慌,仔细读错误信息,它已经把问题和位置告诉你了。
六、写一个稍微复杂点的程序
学了基础知识,我们来把它们组合起来,写一个有实际逻辑的程序。
6.1 个人介绍程序
""" 个人介绍程序 这个程序会收集你的信息,然后生成一份个性化的自我介绍 """print('='*50)print('欢迎使用个人介绍生成器')print('='*50)# 收集信息name=input('请输入你的名字:')age=input('请输入你的年龄:')city=input('请输入你所在的城市:')hobby=input('请输入你的爱好:')job=input('请输入你的职业/专业:')# 计算出生年份(粗略估算)fromdatetimeimportdatetime current_year=datetime.now().year birth_year=current_year-int(age)# 生成自我介绍print()print('='*50)print(f'{name}的自我介绍')print('='*50)print()print(f'大家好,我叫{name},{age}岁,来自{city}。')print(f'我是一名{job},平时喜欢{hobby}。')print(f'我大概出生在{birth_year}年。')print(f'我的名字有{len(name)}个字,听起来不错吧!')print()print('很高兴认识大家!一起加油学Python!')print('='*50)6.2 运行效果
================================================== 欢迎使用个人介绍生成器 ================================================== 请输入你的名字:小明 请输入你的年龄:20 请输入你所在的城市:上海 请输入你的爱好:打篮球 请输入你的职业/专业:计算机科学 ================================================== 小明的自我介绍 ================================================== 大家好,我叫小明,20岁,来自上海。 我是一名计算机科学,平时喜欢打篮球。 我大概出生在2005年。 我的名字有2个字,听起来不错吧! 很高兴认识大家!一起加油学Python! ==================================================⌨️ 这个程序虽然简单,但已经包含了编程的核心要素:
- 输入:
input()获取用户数据 - 处理:计算出生年份、获取名字长度
- 输出:用
print()展示结果
几乎所有的程序都是这个模式:接收输入→处理数据→输出结果。不管是简单的控制台程序,还是复杂的Web应用,核心都是这三步。
七、Python交互式环境的实用技巧
7.1 用交互环境做计算器
>>># 基本运算>>>2+3*414>>>(2+3)*420>>>2**10# 2的10次方1024>>>17//5# 整除3>>>17%5# 取余2>>># 浮点数运算>>>10/33.3333333333333335>>>round(10/3,2)3.337.2 用上下方向键复用命令
在交互环境中:
- 按上方向键 ↑:调出上一次输入的命令
- 按下方向键 ↓:调出下一次输入的命令
- 连续按↑可以回溯更早的命令
7.3 使用下划线访问上一次结果
>>>10+2030>>>_# 下划线代表上一次计算的结果30>>>_*260>>>_+10707.4 Tab自动补全
在交互环境中输入函数名的一部分,按Tab键:
>>>pri[TAB]# 自动补全为 print>>>importos>>>os.pa[TAB]# 列出os模块中pa开头的所有名称>>>os.path.jo[TAB]# 自动补全为 os.path.join八、代码风格:从小养成好习惯
8.1 空格的使用
好的空格使用能让代码可读性大幅提升:
# 推荐的写法(运算符两边有空格)x=5y=x+3name='小明'# 不推荐的写法(挤在一起,难读)x=5y=x+3name='小明'# 逗号后面加空格fruits=['苹果','香蕉','橘子']# 函数参数逗号后加空格print('你好','世界',sep='|')8.2 命名规范
Python社区有一套约定俗成的命名规范(PEP 8):
# 变量名用小写字母+下划线(snake_case)student_name='小明'total_score=95max_retry_count=3# 常量名用全大写+下划线PI=3.14159MAX_CONNECTIONS=100DEFAULT_TIMEOUT=30# 不要用拼音!# 推荐的命名student_count=42# 不推荐的命名xuesheng_shuliang=428.3 善用空行分隔代码
# 导入模块importosimportsys# 定义常量MAX_SCORE=100PASS_SCORE=60# 主逻辑student_name='小明'student_score=85ifstudent_score>=PASS_SCORE:print(f'{student_name}通过了考试')else:print(f'{student_name}没有通过考试')用空行把不同功能的代码块分隔开,就像写文章时分段落一样。
九、常见问题与排错
9.1 “SyntaxError: invalid character”
>>>print('hello')# SyntaxError: invalid character '(' (U+FF08)这是很多新手会踩的坑:用了中文的括号或引号。中文括号()和英文括号()在Python中是完全不同的东西。
✅ 解决方法:确保所有标点符号都是英文半角的。在代码编辑器中设置字体,让中英文字符的差异更加明显。
9.2 print()中引号的使用
# 单引号和双引号在Python中是等价的print('hello')# 单引号print("hello")# 双引号,效果完全一样# 字符串中包含引号时,用另一种引号包裹print("I'm a student")# 包含单引号,外部用双引号print('他说:"你好"')# 包含双引号,外部用单引号# 或者用转义符print('I\'m a student')# \' 表示这是一个单引号字符,不是字符串的结束print("他说:\"你好\"")# \" 同上9.3 中文输出问题
Python 3默认使用UTF-8编码,处理中文一般没有问题。但如果遇到乱码:
# 文件头部添加编码声明(虽然Python 3通常不需要)# -*- coding: utf-8 -*-print('中文在Python 3中直接输出没有问题')十、本篇小结
✅ 恭喜你!今天正式完成了Python编程的第一步。核心收获:
- 三种运行方式:交互环境(快速测试)、脚本文件(日常开发)、IDE运行(最高效)
- print()函数:最基本的输出方式,支持多个参数、自定义分隔符和结束符
- 逐行执行:Python从上到下按顺序执行代码
- 错误阅读:SyntaxError、NameError、TypeError是最常见的三类错误
- 代码风格:好的空格习惯和命名规范从一开始就养成
💡 编程和学习任何技能一样——看完教程不等于会了,自己动手敲过代码、改了代码、遇到了bug并解决了,才算真正的掌握。下一篇我们将从注释开始,深入Python的基础语法。