ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PyCharm入门实战:用三种方式画爱心学Python编程基础

PyCharm入门实战:用三种方式画爱心学Python编程基础 很多人装上 PyCharm 之后的第一反应是界面这么复杂到底该先点哪里我见过太多人因为这个被劝退其实入门 Python 根本不需要把 IDE 的所有功能摸透你只需要一个能写代码、能跑起来的编辑器就够了。这篇教程就本着实用主义来——用 PyCharm 写一个画爱心的程序。别觉得这很幼稚它牵扯到循环、数学公式、绘图库、调试报错这些最核心的基础功。无论你是刚装好 PyCharm 的新手还是想拿有趣小项目熟悉 IDE 操作的人都可以照着敲一遍。三种实现方式我都给了完整代码前面两种不需要装任何额外库第三种只需要一条安装命令。1. 选“爱心”当练手项目比你想的更有价值1.1 一个程序覆盖了 Python 入门三大件先说说为什么偏偏选画爱心。我在带新人时发现很多人第一段代码是“Hello World”跑完就完了完全没有成就感也不知道下一步该干嘛。画爱心的项目刚好卡在“简单”和“有趣”之间——它需要你写循环、用条件判断、调用图形库最后还能得到一个能拿去发朋友圈的成果。这个项目至少能练到三件事一是循环和嵌套循环的逻辑控制台字符版爱心本质上是二维坐标遍历二是绘图库的使用turtle 的每一步移动都是对编程思维的具象化三是数学公式转代码的能力matplotlib 版爱心直接用的是心形线参数方程。这三样东西后面做爬虫、做数据分析、写自动化脚本全部用得上。所以别把它当玩具它是一块很好的跳板。1.2 环境准备装哪个版本、Python 环境怎么配这里必须说一个很多人犹豫的问题PyCharm 到底装社区版还是专业版我的建议非常明确——练手、学习、做普通 Python 开发社区版Community完全够用而且它是免费开源的不存在任何授权风险。专业版主要多出来的是 Web 开发Django/Flask、数据库工具、远程解释器这些功能等真有需求再升级不迟。学生和教师还可以通过官方渠道申请免费的专业版授权没必要去碰网上那些来路不明的激活工具安全和合规问题都犯不上。装好 PyCharm 之后最先要做的是给项目配置解释器。新建项目窗口里有一个 New environment using 的选项通常直接选 Virtualenv 就行PyCharm 会自动关联你电脑上已经安装的 Python。如果你之前装的是 Anaconda那就选择 Conda 并指定 conda 可执行文件的路径——很多人在这一步卡住其实就是因为 PyCharm 找不到 conda手动浏览到 Anaconda 安装目录下的Scripts/conda.exe就能解决。配置完解释器PyCharm 底部的终端和运行按钮才真正可用。判断配置是否正确有个很直接的方法在代码里写import sys然后print(sys.executable)运行后输出的路径就是你当前项目使用的 Python 路径只要这个路径指向你预期的那一个环境一切正常。这一步做完后面所有代码都能顺利跑起来。2. 第一颗爱心纯控制台字符画零依赖2.1 字符爱心的核心思路不依赖任何第三方库直接用 print 打印出一颗爱心这听起来像魔术其实是经典的数学不等式可视化。画字符画本质是在一个二维坐标系里逐点判断“这个点要不要涂色”。我们定义一个爱心形状的数学公式然后从左上角到右下角逐行扫描满足条件的坐标就打上字符不满足的就打空格。用到的公式是(x² y² - 1)³ - x²·y³ 0。把坐标代进去结果小于等于 0就说明这个坐标落在爱心内部。这个公式看起来吓人但转成代码只有一行而且它的容错率很高稍微偏离一点点也不影响最终效果非常适合拿来找手感。2.2 完整代码、缩放参数和运行效果在 PyCharm 里新建一个 Python 文件命名heart_console.py把下面这段敲进去for y in range(15, -15, -1): line for x in range(-30, 30): value ((x * 0.04) ** 2 (y * 0.1) ** 2 - 1) ** 3 - (x * 0.04) ** 2 * (y * 0.1) ** 3 if value 0: line * else: line print(line)右键运行控制台立刻就会输出一颗由星号组成的爱心。这里有两个参数需要特别注意x * 0.04和y * 0.1是缩放系数因为爱心公式的函数值范围不大不缩放的话图案会非常小range(15, -15, -1)表示从 15 往 -15 递减这样爱心是正着显示的如果你写成range(-15, 15)会得到一个上下颠倒的图案这是初学者最容易踩的坑。调整缩放系数能看到很有趣的变化系数越大爱心越大但超过一定范围会被控制台换行截断把*换成♥也可以只要你的控制台支持 Unicode 显示。我建议你改完参数多运行几次亲眼看看图案怎么变形这比背十遍语法都管用。3. 第二颗爱心turtle 海龟绘图让爱心“画出来”3.1 turtle 是什么窗口和 PyCharm 的关系turtle海龟绘图是 Python 标准库自带的绘图模块不需要额外安装。它的逻辑很直白屏幕上一只小海龟你命令它前进、后退、转弯它爬过的轨迹就是画出来的线条。这种指令式绘图特别适合初学者建立编程直觉——每一行代码都会立刻产生可视化反馈代码和画面一一对应错在哪里一眼就能看出来。在 PyCharm 里跑 turtle 时有一点一定要提前知道turtle 的绘图窗口和 PyCharm 的控制台是分离的运行后会弹出一个独立的窗口。这个窗口有时候会一闪而过原因和解决办法放在第五部分单独讲你先记住一个诀窍——代码最后一定写上turtle.done()或turtle.mainloop()让窗口保持住。3.2 标准爱心画法逐行拆解下面是 PyCharm 里可以直接运行的 turtle 爱心代码import turtle t turtle.Turtle() t.speed(3) t.pensize(3) t.color(red) t.begin_fill() t.left(50) t.forward(133) t.circle(50, 200) t.right(140) t.circle(50, 200) t.forward(133) t.end_fill() t.hideturtle() turtle.done()逐行解释一下t.left(50)让海龟左转 50 度t.forward(133)向前画一条边t.circle(50, 200)是画一个半径 50、弧度 200 度的圆弧。左右两段圆弧对称连接就构成了爱心的两个“瓣”最后再forward(133)回到起点。begin_fill()和end_fill()中间的所有封闭轨迹会被填充成红色。这里有个值得停下来的细节为什么第一次画圆弧前转 50 度第二次画圆弧前要转 140 度因为两条边在转折处的方向变化刚好需要补足 180 度减去之前的角度这个角度关系决定了两段圆弧能不能平滑拼接。你试着改成 130 度运行一下会得到一个歪掉的爱心改回来又正常了——这种即时反馈是学习角度和方向控制最好的方式。3.3 加文字、改颜色、调速度画完爱心之后很多人想加一句表白的话。turtle 支持直接写字t.penup() t.goto(0, -100) t.pendown() t.color(black) t.write(Made in PyCharm, aligncenter, font(Arial, 16, bold)) turtle.done()penup()抬起画笔移动时不留下痕迹goto(0, -100)把海龟移到爱心下方pendown()再落笔。write的第三个参数是字体元组可以自由修改字号和字体。你还可以把t.color(red)改成pink、gold或者用t.speed(10)把绘制过程调快——我建议调慢一点录屏发给朋友时更有仪式感看着爱心一笔一笔“长”出来比秒画完有感染力得多。4. 第三颗爱心matplotlib 心形线数学与浪漫结合4.1 心形线参数方程的原理如果不想只画一个“像爱心的形状”而是想用严格的数学曲线表达“这就是爱心”那就要用到心形线Cardioid的参数方程。网上流传最广的一组公式是这样x 16 * sin³(t) y 13 * cos(t) - 5 * cos(2t) - 2 * cos(3t) - cos(4t)参数 t 从 0 变化到 2πx 和 y 的轨迹就描绘出一条完整的心形线。这个式子里包含了三角函数、参数方程、坐标映射三个知识点看懂这段代码之后你对“用数学描述形状”这件事会有全新的感受后面做数据可视化也会更顺手。4.2 安装 matplotlib 并跑通完整代码matplotlib 是第三方库需要先安装。在 PyCharm 里打开底部 Python Packages 面板搜索 matplotlib点 Install 即可——我建议用这种方式因为 PyCharm 会自动装到当前项目的虚拟环境里不会污染全局环境。如果你习惯命令行也可以在你配置好的解释器对应的终端里执行pip install matplotlib。装好之后新建一个 Python 文件运行下面的代码import numpy as np import matplotlib.pyplot as plt t np.linspace(0, 2 * np.pi, 1000) x 16 * np.sin(t) ** 3 y 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t) plt.figure(figsize(6, 5)) plt.plot(x, y, colorred, linewidth3) plt.fill(x, y, colorred, alpha0.3) plt.axis(equal) plt.axis(off) plt.title(Heart Curve, fontsize14) plt.show()np.linspace(0, 2 * np.pi, 1000)生成 1000 个均匀分布的角度值点越多曲线越平滑。plt.axis(equal)这行尤其关键它保证 x 轴和 y 轴的单位长度一致否则爱心会被拉成椭圆。plt.fill用半透明的红色填充内部配合alpha0.3比纯线框好看不少。如果没有安装 numpy 和 matplotlib运行时会直接报ModuleNotFoundError: No module named numpy这是典型的包没装对环境的问题。具体怎么解决我放到下面统一说因为这个坑覆盖了至少一半的 PyCharm 新手。5. PyCharm 里最容易翻车的五个问题一次讲清5.1 解释器没配置红波浪线和灰色运行按钮刚打开 PyCharm 可能会看到 import 语句下面飘红或者运行按钮是灰色的这基本就是解释器没配好。进入 File → Settings → Project → Python Interpreter点右上角齿轮选择 Add Interpreter再选你安装的 Python 版本。如果用的是 Anaconda就在 Conda Environment 里指定 conda 路径。配完 PyCharm 会重新索引依赖等右下角进度条走完红波浪线自然消失。5.2 包装到“别处”去了ModuleNotFoundError 的头号原因我见过太多人明明执行了 pip install但一运行还是提示找不到模块。原因在于你在系统 Python 里装了包但 PyCharm 项目用的是独立的虚拟环境两边不互通。你说你搜过“PyCharm 怎么安装 pandas 包”也没用大概率就是栽在这个地方。解决办法是养成一个习惯——在 PyCharm 底部 Terminal 里先确认当前在哪个环境命令行前的括号里会显示虚拟环境名称再执行安装命令或者干脆用 PyCharm 的 Python Packages 面板它能保证装到项目环境里。这个习惯在画爱心阶段养成后面做 pandas、flask 项目会省很多事。5.3 FileNotFoundError相对路径和项目工作目录不少人在扩展项目时比如画完爱心再读一个本地配置文件会突然遇到FileNotFoundError。这个报错九成是相对路径的问题——PyCharm 默认的工作目录是项目根目录而不是当前 Python 文件所在目录。你从网上抄的代码如果用了open(data.txt)这种写法文件其实放在别的文件夹里自然找不到。最简单可靠的方案是不要依赖相对路径改用from pathlib import Path BASE_DIR Path(__file__).resolve().parent file_path BASE_DIR / data.txt__file__代表当前文件.resolve()返回绝对路径这样无论从哪里启动程序都不会找不到文件。5.4 turtle 窗口一闪而过turtle 跑完立刻闪退是 PyCharm 里最经典的提问之一。原因很简单程序执行到最后Python 进程结束窗口自然被回收。解决办法就是前面提到的在代码最后加turtle.done()或turtle.mainloop()让程序进入事件循环窗口就会一直保持直到你手动关闭它。5.5 matplotlib 中文显示成方框如果你在标题里写了中文比如“爱心曲线”大概率会显示成一排小方框。这是 matplotlib 默认字体不支持中文导致的。处理办法是手动指定字体plt.rcParams[font.sans-serif] [SimHei, Microsoft YaHei] plt.rcParams[axes.unicode_minus] False第一行指定中文字体第二行防止负号显示成异常字符两个一起写上最保险。这个坑在你后面做数据可视化、画图表的时候一定会再遇到早点记住不亏。6. 跑完这个项目我再给你几句实在话最后说几点心得都是带人跑了无数遍这个项目之后积累下来的。字符画版本虽然最朴素但它其实是三个版本里最能锻炼逻辑思维的因为它逼你去理解“坐标系遍历”这件事。试着把range(15, -15, -1)的步长改成-0.5再把总行数相应扩大你会得到分辨率更高、更精细的爱心这个微调过程比单纯抄代码有用得多。turtle 版本适合拿来当“作品”做调慢速度录屏配上音乐它就是一个小产出拿去发给朋友比转发表情包有诚意多了。matplotlib 版本建议亲手把参数方程敲进去而不是直接复制亲手输入一遍之后你对 sin 和 cos 的理解会彻底不一样。最后留一道小小的扩展题试试用 turtle 一次性画三颗大小不同的爱心把尺寸和位置存进列表用循环去驱动。做出来之后你会发现循环、函数、列表这些基础语法已经被串起来了。到这一步PyCharm 对你就不是一个“看起来很厉害的编辑器”而是一个真正趁手的工具了。
返回列表