十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

计算器是 Python 入门的经典项目,它能够全面考核基本语法、判定语句、循环语句及异常处理等核心知识点

计算器是 Python 入门的经典项目,它能够全面考核基本语法、判定语句、循环语句及异常处理等核心知识点 计算器是 Python 入门的经典项目它能够全面考核基本语法、判定语句、循环语句及异常处理等核心知识点。在实操中我们不仅要实现加减乘除还要考虑程序的健壮性。实操代码importmathdefcalculator():一个支持基础运算与异常处理的控制台计算器print(*30)print(欢迎使用 Python 控制台计算器)print(支持运算、-、*、/、%、//、**)print(输入 q 随时退出程序)print(*30)whileTrue:try:num1_inputinput(\n请输入第一个数字或 q 退出).strip()ifnum1_input.lower()q:print(感谢使用再见)breaknum2_inputinput(请输入第二个数字).strip()operatorinput(请选择运算符、-、*、/、%、//、**).strip()num1float(num1_input)num2float(num2_input)ifoperator:resultnum1num2elifoperator-:resultnum1-num2elifoperator*:resultnum1*num2elifoperator/:ifnum20:print(错误除数不能为零)continueresultnum1/num2elifoperator%:resultnum1%num2elifoperator//:ifnum20:print(错误除数不能为零)continueresultnum1//num2elifoperator**:resultnum1**num2else:print(错误不支持的运算符请重新输入。)continue# 格式化输出去除末尾多余的零formatted_resultf{result:.10f}.rstrip(0).rstrip(.)print(f计算结果{num1}{operator}{num2}{formatted_result})exceptValueError:print(错误请输入有效的数字)exceptExceptionase:print(f发生未知错误{e})if__name____main__:calculator()技术解析这段代码使用了while True构建主循环保证程序可以连续计算。通过try-except块捕获ValueError有效防止了用户输入非数字字符导致程序崩溃。同时针对除法运算加入了除数为零的校验并使用字符串格式化rstrip方法优化了浮点数的显示效果。二、 文件操作与数据结构文本版待办事项Todo工具掌握文件读写File I/O和数据结构如列表、字典是进阶实操的必经之路。我们可以开发一个命令行版的待办事项工具将数据持久化存储在本地 txt 文件中。实操代码importos TODO_FILEtodos.txtdefload_todos():从文件加载待办事项ifnotos.path.exists(TODO_FILE):return[]withopen(TODO_FILE,r,encodingutf-8)asf:return[line.strip()forlineinfifline.strip()]defsave_todos(todos):将待办事项保存到文件withopen(TODO_FILE,w,encodingutf-8)asf:fortodointodos:f.write(todo\n)defshow_todos(todos):展示待办事项print(\n--- 当前待办事项 ---)ifnottodos:print(暂无待办事项。)returnforidx,todoinenumerate(todos,1):print(f{idx}.{todo})print(--------------------\n)deftodo_manager():todosload_todos()whileTrue:actioninput(操作 [a:添加 | v:查看 | d:删除 | q:退出]).strip().lower()ifactiona:iteminput(请输入新的待办事项).strip()ifitem:todos.append(item)save_todos(todos)print(添加成功)elifactionv:show_todos(todos)elifactiond:show_todos(todos)try:idxint(input(请输入要删除的序号))-1if0idxlen(todos):removedtodos.pop(idx)save_todos(todos)print(f已删除{removed})else:print(序号无效)exceptValueError:print(请输入有效的数字)elifactionq:print(退出程序。)breakelse:print(无效操作请重新输入。)if__name____main__:todo_manager()技术解析此项目使用了 Python 的上下文管理器with open(...) as f这是处理文件最规范的方式能够确保文件在使用后自动关闭。列表推导式[line.strip() for line in f]极大地简化了读取和清洗文件内容的代码。通过分离“加载”、“保存”和“展示”函数体现了模块化编程的思想。三、 数据分析与可视化正态分布统计分析如果您希望向数据科学方向拓展可以结合numpy和matplotlib库进行数据分析实操。以下是一个生成随机数据并进行统计分析的完整流程。实操代码importnumpyasnpimportmatplotlib.pyplotaspltdefanalyze_normal_distribution():# 1. 设置随机种子保证结果可复现np.random.seed(42)# 2. 生成1000个符合标准正态分布的随机数据datanp.random.normal(0,1,1000)# 3. 计算核心描述性统计量mean_valnp.mean(data)std_valnp.std(data)print(f样本均值{mean_val:.4f})print(f样本标准差{std_val:.4f})# 4. 数据可视化plt.figure(figsize(10,6))# 绘制直方图densityTrue 表示转换为概率密度plt.hist(data,bins30,densityTrue,alpha0.6,colorskyblue,labelSample Data)# 绘制理论上的正态分布概率密度函数(PDF)曲线xnp.linspace(-4,4,100)pdf1/(np.sqrt(2*np.pi))*np.exp(-x**2/2)plt.plot(x,pdf,r-,linewidth2,labelTheoretical PDF)plt.title(Normal Distribution Analysis)plt.xlabel(Value)plt.ylabel(Probability Density)plt.legend()plt.grid(True,linestyle--,alpha0.7)plt.show()if__name____main__:analyze_normal_distribution()技术解析这段代码展示了数据处理的标准范式数据生成 - 统计计算 - 可视化。numpy提供了高效的向量化运算而matplotlib则通过直方图和折线图的叠加直观地验证了样本数据与理论分布的拟合程度。四、 Python 上机实操的核心方法论在进行上述代码实操时建议遵循以下工程化学习策略拒绝“只看不练”看教程或阅读代码10小时不如自己亲手敲写并调试1小时。初学者最容易犯的错误是“收藏了大量项目教程却从未完整运行过”。建议将一个项目完整敲写三遍直到能够脱离参考独立实现。拥抱“卡壳”时刻在实操中遇到 Bug 是最宝贵的学习机会。例如在写计算器时忘记处理除数为零或者在读写文件时遇到编码错误这些“卡住”的时刻恰恰暴露了你知识体系的盲区。学会使用调试工具或查阅官方文档解决问题比单纯写出正确代码更重要。注重代码规范从第一次上机实操开始就应养成良好的编程习惯。遵循 PEP8 规范为函数编写清晰的注释Docstring合理使用类型提示Type Hints并尝试使用try-except进行防御性编程。项目驱动与刻意练习不要试图一次性掌握所有方向。可以先从上述的基础逻辑、文件操作练起再逐步向网络请求如天气查询工具、自动化办公如批量文件重命名或数据分析方向拓展。每天保持一定的代码编写量通过“输入-实践-输出”的闭环将语法知识内化为真正的实操技术。
返回列表