当前位置: 首页 > article >正文

【Python基础20讲】第01章:Python 环境搭建与第一个程序

博主智算菩萨专注于人工智能、Python编程、音视频处理及UI窗体程序设计等方向。致力于以通俗易懂的方式拆解前沿技术从零基础入门到高阶实战陪伴开发者共同成长。目前已开设五大技术专栏累计发布多篇原创技术文章深受读者好评。 专栏导航人工智能前沿知识深度剖析Transformer架构、生成式AI、强化学习、具身智能、神经符号系统、大模型及智能体Agent技术系统性解析AI核心技术体系与前沿趋势。Python基础小白编程从零开始以保姆式教程讲解变量、数据类型、流程控制、函数等核心语法配有大量实战代码与避坑指南真正做到学以致用。机器学习与深度学习系统化拆解线性模型、决策树、随机森林、梯度提升树、神经网络等算法原理与工程实践覆盖从公式推导到代码实现的全链路内容。音频、图像与视频处理理论与实战涵盖FFmpeg多媒体处理、audio_shop开源工具、ComfyUI-WanVideoWrapper视频生成等实用技术从基础操作到高级应用一应俱全。UI窗体程序设计实战深入讲解UI设计、动态窗体生成、游戏UI框架设计等实战技巧提供从配置到编码的完整解决方案。智算菩萨以代码为经以算法为纬在人工智能的星辰大海中做你前行路上最可靠的导航者。1.1 Python 语言概述Python 是由荷兰程序员 Guido van Rossum 于 1989 年圣诞节期间开始设计1991 年首次发布的解释型高级编程语言。它的名字来源于英国喜剧团体 Monty Python而非蟒蛇。Python 的设计哲学强调代码的可读性和简洁性其核心理念可以通过import this查看即Python 之禅其中最重要的几条包括优美胜于丑陋、明确胜于隐晦、简单胜于复杂、可读性很重要。Python 有两个主要版本Python 2 和 Python 3。Python 2 于 2020 年 1 月 1 日正式停止维护目前所有新项目都应使用 Python 3。本教程基于 Python 3.10 编写代码在 Python 3.12/3.13 上测试通过。Python 的主要特点可以概括为以下几点。第一它是解释型语言不需要编译即可运行开发效率高。第二它是动态类型语言变量不需要预先声明类型。第三它支持多种编程范式包括面向对象、函数式和过程式编程。第四它拥有极其丰富的标准库和第三方生态系统被称为自带电池的语言。第五它的语法简洁优雅使用缩进而非花括号来表示代码块。1.2 Python 环境安装Python 的官方下载地址是 https://www.python.org/国内用户推荐使用清华大学镜像站 https://mirrors.tuna.tsinghua.edu.cn/python/ 加速下载。安装时务必勾选Add Python to PATH选项否则在命令行中无法直接使用 python 命令。安装完成后在命令行中输入以下命令验证安装是否成功python --version pip --version如果显示版本号说明安装成功。pip是 Python 的包管理工具用于安装和管理第三方库。国内使用 pip 安装包时推荐使用镜像源加速pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple对于项目开发建议使用虚拟环境venv来隔离不同项目的依赖避免版本冲突python -m venv myenv # 创建虚拟环境 source myenv/bin/activate # Linux/Mac 激活 myenv\Scripts\activate # Windows 激活1.3 第一个 Python 程序Python 程序的执行方式有两种交互式和脚本式。交互式模式下在命令行输入python进入解释器每输入一行代码按回车即可看到结果适合快速测试。脚本式模式下将代码保存为.py文件通过python 文件名.py执行适合编写完整的程序。第一个程序永远是 Hello World。在 Python 中只需要一行代码print(Hello, World!)print()是 Python 最基本的输出函数它将括号中的内容输出到标准输出通常是屏幕。与 C 语言的printf或 Java 的System.out.println相比Python 的print不需要分号结尾不需要指定数据类型也不需要写main函数——这就是 Python 简洁性的体现。1.4 print() 函数详解print()函数的完整语法为print(*objects, sep , end\n, filesys.stdout, flushFalse)。其中最常用的参数是sep和end。sep参数控制多个输出对象之间的分隔符默认是一个空格。例如print(2026, 04, 16, sep-)输出2026-04-16。end参数控制输出结束后的字符默认是换行符\n。例如print(Hello, end )输出后不换行光标停留在空格后面。1.5 注释注释是代码中不被解释器执行的说明性文字用于提高代码的可读性。Python 的单行注释以#号开头#号后面的所有内容都被忽略。多行注释可以使用三引号...或...包裹但严格来说这是文档字符串docstringPython 解释器并不会忽略它——它会被存储为对象的__doc__属性。如果只是想写多行注释更规范的做法是每行都加#号。注释的最佳实践包括解释为什么而非是什么代码本身应该能说明是什么保持注释与代码同步更新避免无意义的注释如i i 1 # i 加 1。1.6 输入函数 input()input()函数从标准输入读取一行文本返回值始终是字符串类型。如果需要数字必须进行类型转换。例如age int(input(请输入年龄: ))int()函数将字符串转换为整数。如果用户输入的不是有效数字程序会抛出ValueError异常。1.7 格式化输出Python 提供了三种字符串格式化方式。第一种是 f-string格式化字符串字面量Python 3.6 引入语法为f...在花括号{}中可以直接写表达式是最推荐的写法。第二种是str.format()方法用{}作为占位符。第三种是%格式化继承自 C 语言的 printf 风格已不推荐在新代码中使用。f-string 支持丰富的格式控制{value:.2f}保留两位小数{value:10}右对齐宽度 10{value:10}左对齐{value:^10}居中对齐{value:*10}用*填充{value:,}千分位分隔{value:b}二进制{value:x}十六进制{value:%}百分比。1.8 Python 的缩进规则Python 使用缩进来表示代码块而不是 C/Java 中的花括号{}。同一代码块中的语句必须保持相同的缩进量通常使用 4 个空格不要混用 Tab 和空格。缩进错误是初学者最常见的语法错误之一。Python 之禅中说扁平胜于嵌套建议避免过深的缩进层次。完整代码 第01章Python 环境搭建与第一个程序 演示 Python 环境信息、基本输入输出、注释风格 importsysimportplatform# # 1. Python 环境信息# print(*50)print( Python 环境信息)print(*50)print(fPython 版本:{sys.version})print(f平台:{platform.system()}{platform.release()})print(f架构:{platform.machine()})print(f解释器路径:{sys.executable})# # 2. 第一个程序Hello World# print(\n*50)print( Hello World)print(*50)# print 是最基本的输出函数print(Hello, World!)print(你好Python)# sep 参数控制分隔符默认是空格print(2026,04,16,sep-)print(姓名,年龄,城市,sep | )# end 参数控制结尾字符默认是换行print(第一行,end )print(第二行)print(第三行,end!!!\n)# # 3. 注释风格# print(\n*50)print( 注释风格)print(*50)# 这是单行注释# 号后面的内容不会被执行 这是多行注释文档字符串 可以跨越多行 常用于函数、类、模块的说明文档 # 这也是多行注释的写法用 # 代替print(注释不会影响程序运行)# # 4. 基本输入# print(\n*50)print( 基本输入模拟)print(*50)# input() 函数从标准输入读取一行文本# 在自动化运行时我们用模拟数据代替simulated_inputPython 学习者namesimulated_input# 等价于 name input(请输入你的名字: )print(f欢迎你{name})# input() 返回的始终是字符串需要类型转换age_str25ageint(age_str)# 字符串转整数print(f你今年{age}岁十年后你将{age10}岁)# # 5. print 的格式化输出# print(\n*50)print( 格式化输出)print(*50)name张三age28score95.678# 方法一f-stringPython 3.6推荐print(f姓名:{name}, 年龄:{age}, 成绩:{score:.2f})# 方法二format() 方法print(姓名: {}, 年龄: {}, 成绩: {:.1f}.format(name,age,score))# 方法三% 格式化旧式print(姓名: %s, 年龄: %d, 成绩: %.2f%(name,age,score))# f-string 的高级用法pi3.14159265print(fπ {pi:.4f})# 保留 4 位小数print(fπ {pi:10.4f})# 右对齐宽度 10print(fπ {pi:10.4f})# 左对齐print(fπ {pi:^10.4f})# 居中对齐print(f{OK:*10})# 用 * 填充print(f二进制:{42:b})# 二进制print(f八进制:{42:o})# 八进制print(f十六进制:{42:x})# 十六进制print(f千分位:{1000000:,})# 千分位分隔# # 6. 简单的计算器# print(\n*50)print( 简单计算器)print(*50)a,b15,4print(fa {a}, b {b})print(f加法: a b {ab})print(f减法: a - b {a-b})print(f乘法: a * b {a*b})print(f除法: a / b {a/b})print(f整除: a // b {a//b})print(f取余: a % b {a%b})print(f幂运算: a ** b {a**b})print(\n[第01章] 全部示例运行完毕)实验日志以下是运行上述代码后的实际输出 Python 环境信息 Python 版本: 3.13.4 (tags/v3.13.4:8a526ec, Jun 3 2025, 17:46:04) [MSC v.1943 64 bit (AMD64)] 平台: Windows 11 架构: AMD64 解释器路径: C:\Program Files\Python313\python.exe Hello World Hello, World! 你好Python 2026-04-16 姓名 | 年龄 | 城市 第一行 第二行 第三行!!! 注释风格 注释不会影响程序运行 基本输入模拟 欢迎你Python 学习者 你今年 25 岁十年后你将 35 岁 格式化输出 姓名: 张三, 年龄: 28, 成绩: 95.68 姓名: 张三, 年龄: 28, 成绩: 95.7 姓名: 张三, 年龄: 28, 成绩: 95.68 π 3.1416 π 3.1416 π 3.1416 π 3.1416 ********OK 二进制: 101010 八进制: 52 十六进制: 2a 千分位: 1,000,000 简单计算器 a 15, b 4 加法: a b 19 减法: a - b 11 乘法: a * b 60 除法: a / b 3.75 整除: a // b 3 取余: a % b 3 幂运算: a ** b 50625 [第01章] 全部示例运行完毕本章小结本章介绍了 Python 语言的基本概况、环境安装方法、第一个程序的编写、print()和input()函数的用法、三种字符串格式化方式以及 Python 的缩进规则。这些是学习 Python 的第一步后续章节将在此基础上逐步深入。需要特别注意的是input()返回的始终是字符串进行数学运算前必须进行类型转换f-string 是 Python 3.6 推荐的格式化方式语法简洁且功能强大。

相关文章:

【Python基础20讲】第01章:Python 环境搭建与第一个程序

博主智算菩萨,专注于人工智能、Python编程、音视频处理及UI窗体程序设计等方向。致力于以通俗易懂的方式拆解前沿技术,从零基础入门到高阶实战,陪伴开发者共同成长。目前已开设五大技术专栏,累计发布多篇原创技术文章,…...

山东大学软件学院2026项目实训个人博客(二)

项目名称:基于AI大模型的智能考研社区撰写日期:2026年4月18日本周我主要完成了项目基础环境的进一步搭建和Redis、RabbitMQ配置的完善,优化当前注册功能、登录功能、错题本CRUD功能,并进行Swagger测试。一、基础环境搭建从git仓获…...

Python 源码解读:核心数据结构与算法实现分析

一、前言Python 源码解读:核心数据结构与算法实现分析。本文深入源码层面,剖析核心设计原理,帮你从"会用"升级到"精通"。二、核心原理深度剖析2.1 数据结构设计# Python 装饰器的原理:闭包 函数作为一等公民…...

HC32F072 IAP实战:从Bootloader编写到APP跳转的完整避坑指南

HC32F072 IAP实战:从Bootloader编写到APP跳转的完整避坑指南 第一次在HC32F072上实现IAP功能时,我盯着那个神秘的__attribute__((section(".ARM.__at_0x2200")))发呆了一整天。为什么Flash操作函数必须放在这个特定地址?为什么跳转…...

技术挑战:模块交互中的条件替换异常分析与解决

技术挑战:模块交互中的条件替换异常分析与解决 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: https://gitcode…...

武昌老酒回收电话

随着消费升级与收藏文化的兴起,名贵老酒已成为许多家庭和企业资产的一部分。在武汉武昌区,如何处理手中闲置或珍藏的老酒,实现其价值的安全、高效变现,是不少持有者关心的话题。本文将深入分析武昌老酒回收市场的现状,…...

Go 中嵌入类型字段在派生结构体字面量中的初始化规则详解

Go 语言中,嵌入类型(embedded type)的字段虽可被派生结构体直接访问,但不能作为字段名出现在结构体字面量中;必须通过显式初始化嵌入类型本身,或先创建实例再赋值。 go 语言中,嵌入类型&am…...

第九篇技术笔记:PoDL:一根线,供电上网两不误

写在开篇:最近一位新疆美女导游特别火,说的也听感动:湾湾当归!早日回到祖国的怀抱!不是因为技术做不到,是因为那边有人需要。车载以太网也是这个道理。不是“把电源和数据放一根线上”这个技术有多难&#…...

Hermes_Agent_Windows安装文档

Hermes Agent Windows 安装文档适用系统:Windows 10/11 + WSL2 + Ubuntu 整理自实际安装过程,包含常见报错解决方案前置说明 Hermes Agent 不支持原生 Windows,必须通过 WSL2(Windows Linux 子系统)安装。 WSL2 会在 Windows 里运行一个完整的 Linux 环境,Ubuntu 的数据存…...

Workout.Cool:打造您的终极开源健身教练平台,3大核心功能全面解析

Workout.Cool:打造您的终极开源健身教练平台,3大核心功能全面解析 【免费下载链接】workout-cool 🏋 Modern open-source fitness coaching platform. Create workout plans, track progress, and access a comprehensive exercise database.…...

实战指南:Element-ui Select 选择器深度样式定制(从透明背景到悬停交互)

1. 为什么需要深度定制Select选择器? 最近在做一个深色主题的管理后台项目时,我发现Element-ui默认的Select选择器样式完全不符合设计需求。原生的白色背景在下拉时显得特别突兀,就像在一张黑色画布上突然撕开一道口子。这让我意识到&#xf…...

SOCD Cleaner终极指南:如何用键盘映射提升游戏操作精度

SOCD Cleaner终极指南:如何用键盘映射提升游戏操作精度 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏中,你是否曾因同时按下相反方向键而导致操作失误?SOCD Clea…...

结合上篇文“怪奇物语物流假设”的对死亡搁浅3的构想

在死亡搁浅中,“送货”从来不是简单的玩法机制,而是一种被具象化的哲学表达。玩家以身体为媒介,在破碎的大地上缓慢前行,将孤立的人类节点重新连接起来。连接,在这里既是行为,也是意义本身。而在死亡搁浅2所…...

实用CLI工具:命令行下的高效选择

命令行界面在开发者日常工作中占据重要位置。很多任务通过它完成时速度更快,也更直接。尤其当处理文件搜索、内容查看或者目录跳转这类重复操作时,合适的CLI工具能节省大量时间。 Homebrew官网: https://brew.sh/ 这些工具大多可以通过简单…...

算法训练营第六天|206. 反转链表

题目链接: https://leetcode.cn/problems/reverse-linked-list/ 视频链接: https://www.bilibili.com/video/BV1nB4y1i7eL题意:反转一个单链表。 示例: 输入: 1->2->3->4…...

用AI修复和复刻老照片

最近,用AI修复了自己不同时期的照片,非常感慨。尤其是小时的场景,我并没有留下多少童年照片,现在,AI根据我的口述,把我放进去了。也算是拼接上了久远的时间轴。包括老的数码、彩照,黑白&#xf…...

CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt

函数节流核心是控制高频触发下函数执行频率,分定时器版(尾部延迟执行、首次不立即执行)和时间戳版(首调立即执行、后续按间隔节制),二者适用场景与性能表现各异。函数节流(Throttle)…...

2026年降AI率工具排行榜怎么选?3招避开智商税

2026年毕业季一到,朋友圈、知乎、小红书上铺天盖地的"降AI率工具排行榜"就开始刷屏。今天这家说"全网第一",明天那家又"权威评测",榜单的前三名永远在换人。我帮三届学弟学妹选过工具,也自己踩过不少坑,今天就…...

动网格实战:Spring光顺法原理详解与案例剖析

1. Spring光顺法入门:为什么需要动网格处理? 做流体仿真的时候,经常会遇到边界运动的场景。比如汽车发动机里的活塞上下运动,或者心脏瓣膜的开合。这时候如果网格不动,就会出现边界穿过网格的尴尬情况——就像用固定渔…...

Fast Screen Recorder屏幕录制软件:解决录屏区域选择与音频同步难题

在日常工作中,你是否需要录制一个软件操作教程发给同事,却不知道如何只录制特定窗口而非整个桌面?是否在录制游戏或会议时,发现系统声音或麦克风没有录进去?或者录制的视频文件过大,无法通过邮件发送&#…...

HiBit Uninstaller:轻松解决软件卸载不干净与顽固程序强制删除难题

当你从控制面板卸载一个软件后,是否发现它的文件夹还留在Program Files里?是否遇到过“无法卸载,缺少卸载程序”的报错?是否感觉电脑越用越慢,却又不知道是哪个残留程序在拖累系统?这些问题的根源在于:Windows自带的卸载功能只能调用软件自带的卸载程序,而很多软件(尤…...

【2026年最新600套毕设项目分享】宠物微信小程序(30100)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 项目演示视频2 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运…...

【2026年最新600套毕设项目分享】外卖微信小程序的研究与开发(30099)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 项目演示视频2 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运…...

测试库与生产库怎么应对同步中断断点续传_无损发布与更新方案

断点是某条变更事件的唯一标识未被消费,如MySQL的file_nameposition、Debezium的source.offset、Oracle的SCN;需通过元数据表存储offset与主键并查询MAX(offset)恢复,禁止依赖时间戳或COUNT对比。同步中断后怎么准确定位断点位置断点不是“某…...

2026届毕业生推荐的五大降AI率网站实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在进行学术论文或者原创内容撰写之际,过高的AI生成痕迹极具可能去影响评审结果。…...

【2026年最新600套毕设项目分享】微信小程序的电子购物系统(30098)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 项目演示视频2 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运…...

DIYGW UniApp可视化工具深度评测:对比传统编码开发到底能省多少时间?

DIYGW UniApp可视化工具实战评测:低代码开发效率的量化分析 在移动应用开发领域,时间就是竞争力。当传统编码方式还在与冗长的开发周期搏斗时,低代码平台正以惊人的速度重构着生产力边界。我们以电商商品详情页为测试场景,对DIYGW…...

Godot 2D碰撞体实战:从FlappyBird看RigidBody2D与StaticBody2D的碰撞艺术

1. 从FlappyBird看Godot碰撞体的核心价值 第一次打开Godot引擎时,我被它简洁的节点系统吸引,但真正让我着迷的是它精妙的物理碰撞系统。记得三年前我尝试复刻FlappyBird时,小鸟明明还没碰到水管游戏就结束了,这种"幽灵碰撞&q…...

Dreamweaver CS6‘行为’功能考古:那些年我们做过的网页特效,现在看还香吗?

Dreamweaver CS6行为功能:一场前端开发美学的复古之旅 鼠标滑过时突然变换的按钮图片、状态栏里跑马灯式的文字、自动弹出的欢迎对话框——这些如今看来略显"复古"的网页特效,曾是2000年代末到2010年代初网页设计的标志性语言。在那个jQuery刚…...

Go语言中 与 -:指针取址与解引用的完整解析

本文深入讲解 Go 中 &(取地址符)和 *(解引用符)的本质区别与协同关系,结合 json.Decode 等典型场景说明何时必须用 &、何时需声明 *T 类型,并通过可运行示例直观展示指针层级与内存语义。 本文…...