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

Python入门(1):从环境搭建到内置函数核心精讲

第一部分

1. 一句话核心总结

该篇讲解了Python入门核心知识,涵盖环境搭建、内置函数(print/input)、变量与对象的本质、以及三种格式化输出方法(百分号格式化、format()函数、f-string表达式),并重点推荐使用f-string作为格式化输出的首选方法。

2. 核心概念定义
  • Python:一种适用于人工智能、深度学习、机器学习、爬虫等领域的编程语言。
  • print()输出函数:Python内置函数,语法结构为print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)。用于将内容输出到控制台或文件。
  • input()输入函数:Python内置函数,用于从控制台读取用户输入,无论输入什么类型,返回的都是字符串类型(str)。
  • 变量(Variable):将数据在内存中存储后给定的名称,相当于“门牌号”,用于引用内存中的对象。
  • 对象(Object):存储在内存中的数据实体,具有三要素:id地址(内存唯一标识)、类型(如int/str)、值(value)。Python中一切皆是对象,变量只是对对象的引用。
  • 格式化输出:给定一个模板,按模板规则输出内容。视频介绍了三种方法:百分号格式化、format()函数、f-string表达式。
3. 分类/类型

视频对环境搭建print()函数参数有详细的步骤讲解,可移步拥有此类搭建视频的站点观看,以下用有序列表呈现:

环境搭建步骤

  1. 安装Anaconda:用于管理Python环境和配置,支持多环境隔离。从官网下载对应系统版本(Windows/Mac/Linux),安装时注意路径不要有中文字符。安装后通过Anaconda Prompt终端管理环境。
  2. 安装编译器:推荐VS Code或PyCharm。VS Code需安装Python扩展(提供代码高亮、智能提示、调试)和Jupyter扩展(Juypter Notebook支持)。
  3. 创建项目文件夹:如D盘下的Python code,存放所有Python程序。
  4. 创建Jupyter Notebook文件:后缀为.ipynb,支持分单元格逐块运行代码(Markdown用于注释说明,Python用于编写代码)。运行前需选择对应Python内核。

print()函数的核心参数

参数作用默认值
sep多个输出对象之间的分隔符空格' '
end输出末尾的结束符换行符'\n'
file输出目标位置(控制台或文件)sys.stdout(屏幕)
flush是否强制刷新输出缓冲区False

示例:print(1, 2, 3, sep='->')输出1->2->3print('Hello', end='')不换行输出。

三种格式化输出方法对比

方法语法特点推荐度
百分号格式化"%s %d" % (name, age)需指定类型,易读性较差了解即可
format()函数"{} {}".format(name, age)不指定类型,较灵活了解即可
f-string表达式f"{name} {age}"最直观,性能最好,推荐使用★推荐
4. 排序或对比关系
  • print默认vs自定义print(1,2,3)默认分隔符为空格,sep='->'后变为1->2->3end='\t'将末尾换行改为制表符,使多个输出在同一行。
  • 文件写入模式(A追加 vs W覆盖)mode='a'将内容追加到文件末尾;mode='w'覆盖原文件内容。
5. 具体建议与注意事项
  • 关于格式化输出:强烈推荐使用f-string表达式,因其直观性好(可直接在大括号中嵌入变量名)、维护性佳(修改时只需改一处变量值)、且性能更高。
  • 关于变量命名:遵守三条硬性规则:只能由字母、数字和下划线组成;不能以数字开头;不能是Python关键字(如ifforFalse等)。建议遵循PEP 8规范:使用小写字母与下划线组合(如user_age)、保持语义清晰、避免拼音或单字母命名(循环变量i/j/x/y除外)。
  • 关于类型转换input()返回字符串,需要用int()float()进行强制类型转换后才能用于算术运算。如age = int(input("请输入年龄:"))
  • 关于文件操作:操作完成后需关闭文件句柄(f.close()),更推荐使用with语句自动管理资源。
  • 变量与对象的内存关系:变量是对象的引用,赋值操作(A = 1)创建变量并使其指向内存中已有的对象(如123、12),改变变量值会使变量指向新的对象。
  • 环境搭建避坑指南:安装路径不要包含中文;安装时勾选“Add to PATH”以便在终端直接调用Python;区分32位和64位版本。
6. 补充说明
  • Python是动态类型解释语言,变量类型在运行时自动决定,无需提前声明。类型只存在于对象中,变量只是对象的引用。
  • Python的=是赋值运算符,而非数学等号。
  • 本文整体内容为Python入门第一节课,后续计划讲解六大数据类型(字符串/列表/字典等)的增删改查、程序结构(顺序分支循环)、函数定义与调用、递归、面向对象编程(封装继承多态),以及数据分析三剑客(Numpy、Pandas、Matplotlib)和深度学习库PyTorch。

第二部分:第一部分常见知识点延展与展示需了解的概念

一、基础概念类
  1. PEP 8编码规范:Python官方代码风格指南,包含缩进(使用4个空格)、行宽(最多79字符)、空行规范、导入语句顺序等。遵循PEP 8使代码更专业、更易读。

  2. pass语句(空操作):语法上需要语句但逻辑上什么都不做时使用,常用于占位,保证代码结构完整。

  3. Python的缩进规则:与C/C++使用花括号不同,Python使用缩进来表示代码块层级,缩进量必须一致(通常4个空格)。不正确的缩进会导致IndentationError

  4. Python版本差异:Python 2.x(已于2020年停止维护)与Python 3.x(当前主流)在print语句(Python 2为print "xxx",Python 3为print("xxx"))、除法(/在2中为整数除法)、Unicode支持等方面存在不兼容变更。f-string是Python 3.6引入的特性。

  5. 查看Python帮助文档:使用help(print)可查看函数详细文档,dir(str)查看字符串所有方法。

  6. IDE/编辑器选型指南:第一部分提及VS Code和PyCharm,补充说明:PyCharm功能最强大,适合专业开发者;VS Code轻便、插件丰富,全球最流行;IDLE为Python自带,适合极简验证。

  7. 虚拟环境:Anaconda支持conda create -n env_name python=3.9创建隔离环境,避免不同项目间的依赖冲突。

  8. 转义字符\n(换行)、\t(制表符)、\\(反斜杠本身)、\"(双引号)、\'(单引号)。在字符串前加r(如r"C:\Users")可输出原始字符串,防止转义。

  9. 多行字符串:使用三个双引号或三个单引号("""..."""'''...''')定义多行字符串,保留换行和缩进格式。

  10. 字符串索引与切片:字符串支持[start:end:step]索引访问,但字符串是不可变序列,不能直接修改单个字符。

二、风险类
  1. 字符串与数字混用导致的TypeErrorinput()接收的所有输入默认都是字符串,若直接进行加法运算(如"10" + 5)会抛出类型错误,必须用int()float()转换。

  2. 赋值时的常见错误:混淆=(赋值)与==(比较);链式赋值(a = b = 1)虽合法但可能引起混淆。

  3. 变量覆盖内置函数名:使用print = 10print()函数失效,需重启解释器恢复。应避免使用内置函数名(printinputlenstrintlistdict等)作为变量名。

  4. 文件操作未关闭导致资源泄露:使用open()后忘记close()可能导致文件句柄耗尽。优先使用with open() as f:上下文管理器自动关闭【第一部分已提到,但需强调其重要性】。

  5. 浮点数精度问题0.1 + 0.2的结果并非精确的0.3,而是近似值0.30000000000000004。比较浮点数时使用abs(a-b) < 1e-9而非a == b

  6. Jupyter Notebook中混淆状态:按顺序执行单元格时,变量会持久存在。若删除中间变量但未重启内核,可能产生难调试的幻觉状态。应定期重启内核并从头运行。

三、实操类
  1. Jupyter Notebook的常用快捷键Shift+Enter运行并移动至下一单元格、Ctrl+Enter运行不移动、Esc进入命令模式、A(上方)和B(下方)插入新单元格、D+D删除当前单元格、M切换Markdown模式、Y切换Code模式。

  2. VS Code调试功能:可设置断点、单步执行、监视变量值等,是分析复杂逻辑问题和理解代码执行流程的强大工具。

  3. 查看变量类型type(variable)返回变量类型。

  4. 查看变量内存地址id(variable)返回内存唯一标识符。

  5. 命令行运行Python脚本:在终端中输入python script.py执行脚本,或输入python进入交互模式(>>>提示符下逐行输入执行)。

  6. 管理Python包:使用conda install package(Anaconda环境)或pip install package安装第三方库;pip freeze查看已安装包列表;pip install package==1.2.0指定版本。

  7. 单行注释与多行注释#为单行注释;多行注释可使用连续#或三引号字符串(不赋值时被视为注释)。

  8. 代码运行效率对比print()频繁调用会影响性能(涉及I/O操作),批量构建字符串后一次print效率更高。

  9. Jupyter Notebook和普通Python文件的区别:Jupyter以.ipynb格式按单元格保存执行状态,适合数据分析和教学演示;普通.py文件按脚本顺序执行,适合部署和模块化开发。

  10. 遇到问题的解决路径:阅读错误信息(Python的错误堆栈很清晰)、将错误信息复制到搜索引擎、使用print(type(variable))print(dir(variable))调试、查阅官方文档。

四、对比类
对比项PythonC/C++Java
代码块标识缩进花括号{}花括号{}
语句结束符换行分号;分号;
变量声明无需声明类型,动态类型必须声明类型(如int a必须声明类型
编译/解释解释型编译型编译解释混合
内存管理自动垃圾回收手动管理自动垃圾回收
对比项百分号格式化f-string
引入版本Python 1.xPython 3.6+
是否需要类型指定符是(%s、%d等)否,直接使用{variable}
运行时性能较慢更快
可读性一般优秀
支持表达式有限支持完整支持
对比项mode='a'追加mode='w'覆盖
作用在文件末尾添加内容清空原文件并写入新内容
文件不存在时自动创建自动创建
保留原内容
对比项Jupyter Notebook普通Python文件(.py)
执行方式按单元格顺序执行按脚本顺序执行
适用场景数据分析、教学演示、探索性开发部署、自动化脚本、模块化开发
状态持久性变量跨单元格持久存在每次运行重新开始
可视化输出支持图表直接嵌入需额外配置
五、常见误区
误区正确理解
变量名可以以数字开头错误,变量名只能以字母或下划线开头
关键字可以用作变量名错误,Python关键字(如ifforFalse)不能作为变量名
变量名不区分大小写错误,Python严格区分大小写,Namename是两个不同变量
input()可以直接获得数字错误,input()始终返回字符串,需用int()float()转换
=表示“等于”错误,=是赋值运算符,==才是比较运算符
Python变量需要声明类型错误,Python是动态类型语言,类型由赋值时的对象决定
变量直接存储数据部分正确,变量存储的是对内存中对象的引用,而非数据本身
修改一个变量不影响另一个对于不可变类型(int/str)安全;对于可变类型(list/dict),两个变量可能指向同一对象,相互影响
print总是输出到屏幕错误,print()file参数可指定输出到文件
数值0.1 + 0.2精确等于0.3错误,浮点数存在精度问题,应使用abs(0.1+0.2-0.3) < 1e-9进行比较
六、进阶知识点
  1. 可变对象 vs 不可变对象:不可变对象(int、str、tuple、bool等)创建后内容不可修改;可变对象(list、dict、set等)可修改内部内容但id地址不变。

    • 字符串不可变s[0] = 'a'会报错,正确操作是创建新字符串
    • 列表可变lst[0] = 99原地修改,所有指向该列表的变量都会受影响
  2. 字符串驻留机制:Python对小整数(通常-5到256)和某些短字符串会缓存,多个变量可能指向同一对象(例:a=256; b=256a is b为True)。

  3. isvs====比较值是否相等;is比较id地址(是否是同一个对象)。

  4. 浅拷贝 vs 深拷贝copy.copy()(浅拷贝)仅拷贝外层对象,嵌套对象共享引用;copy.deepcopy()(深拷贝)递归拷贝所有层级,完全独立。

  5. Cython加速:Python在数学计算场景慢,可学习用Cython将Python代码编译为C扩展模块,加速深度学习等科学计算。

  6. 类型注解:从Python 3.5+开始支持函数注解(如def greet(name: str) -> str:),提高代码可读性,辅助静态类型检查(工具如mypy),但解释器运行时不会强制执行。

  7. None值的特殊性None表示空值,既不是0也不是空字符串,在条件判断中相当于False

  8. 短路求值andor具有短路行为——and左边为False时不执行右边;or左边为True时不执行右边。

  9. 文档字符串(docstring):函数/类/模块开头的三引号字符串,可用help().__doc__查看,是代码文档化的标准方式。

  10. PyPy等Python实现:除标准CPython外,还存在PyPy(JIT编译提升速度)、Jython(运行在Java平台)、IronPython(运行在.NET平台)等实现,各有适用场景。

  11. 列表推导式:一种简洁构建列表的方式,如[i**2 for i in range(10) if i % 2 == 0],文章虽未讲,但在实际Python开发中极为常用。

  12. if __name__ == "__main__":的作用:当.py文件作为主程序运行时执行,作为模块被导入时不执行,是模块化编程的常用模式。


第三部分:全面总结(合并第一、二部分内容)

1. 主题概述

本文章以Python零基础入门为目标,完整涵盖从环境搭建到核心语法的基础知识体系,尤其适合有志于AI、深度学习、机器学习领域的初学者。

Python的定义与特点:Python是一种广泛适用于人工智能、深度学习、爬虫、Web开发等领域的解释型编程语言。核心特点包括:动态类型(无需声明变量类型)、简洁语法(使用缩进表示代码块)、强大的标准库和丰富的第三方生态。

环境搭建:推荐使用Anaconda(管理Python环境和虚拟环境)配合VS Code或PyCharm(编写和调试代码)。Jupyter Notebook(.ipynb格式)支持分单元格运行,特别适合数据分析和教学演示。安装时注意避免中文路径,VS Code需安装Python扩展和Jupyter扩展。

变量与对象的本质:变量是内存中对象的引用(相当于“门牌号”),赋值操作不存储数据,而是让变量指向内存中的对象。对象有三要素:id地址(内存唯一标识)、类型(如int/str)、值(具体数据)。Python中一切皆是对象,变量类型在运行时由赋值的对象决定。

变量命名规则:硬性规则包括只能由字母、数字、下划线组成,不能以数字开头,不能是Python关键字(共35个)。最佳实践遵循PEP 8规范:使用蛇形命名法(如user_age),避免单字母名称(循环变量i/j除外),保持语义清晰(max_connections=100而非a=123)。

2. 分类与对比

print()函数参数详解

参数作用默认值
objects要输出的对象(可变参数)必需
sep对象间的分隔符空格' '
end输出末尾的结束符换行符'\n'
file输出目标(控制台或文件)sys.stdout
flush是否强制刷新缓冲区False

Python代码块vs其他语言:Python用缩进表示代码块(统一4个空格),C/C++和Java用花括号{},且Python语句无需分号结尾。这些特点使Python代码更简洁,但对缩进格式要求更严格。

3. 风险与注意事项

环境相关

  • 安装路径避免中文,区分32位和64位版本,安装时勾选“Add to PATH”
  • 虚拟环境(conda create -n env_name python=3.9)隔离项目依赖,避免包版本冲突

输入输出相关

  • input()始终返回字符串类型,若需数值计算必须用int()float()转换
  • 非数字字符串无法转换为int,会引发ValueError

变量相关

  • 变量名不能与内置函数名(print、input、len等)冲突,否则覆盖函数功能
  • 混淆=(赋值)与==(比较)是常见错误
  • 变量名大小写敏感(Namename不同)
  • 可变对象(如列表)的赋值会创建引用而非副本,多个变量可能指向同一对象,修改会相互影响

浮点数

  • 浮点数运算存在精度问题,比较时使用abs(a - b) < 1e-9而非==

文件操作

  • 必须关闭文件句柄避免资源泄露,优先使用with open() as f:上下文管理器自动管理
  • 区分mode='a'(追加)和mode='w'(覆盖写入)的行为差异

变量与对象的内存模型

  • 变量是对象的引用,赋值操作创建指向内存中对象的引用
  • Python通过引用计数管理内存,当引用计数为0时对象被自动回收
  • 小整数(-5到256)和某些短字符串会被缓存,多个变量可能指向同一对象
4. 实操建议

代码编写与调试

  • 频繁调用print()影响性能(I/O操作耗时),建议批量构建字符串后一次性输出
  • Jupyter Notebook中可用Shift+Enter执行单元格、M切换Markdown模式、Y切换Code模式
  • VS Code支持断点调试,是分析复杂逻辑问题的强大工具
  • 遇到错误时,阅读错误堆栈信息、使用print(type(variable))dir(variable)辅助调试

格式化输出

  • 强烈推荐使用f-string(f"我的名字是{name},年龄{age}岁"),因其直观性好、维护性佳、性能更高
  • f-string支持在花括号内嵌表达式和函数调用

文件操作

  • 常规写入用with open('file.txt', 'w') as f:,确保自动关闭
  • 需要保留原内容时使用mode='a'追加模式

包管理与版本控制

  • 日常开发用condapip安装第三方库,pip freeze可导出依赖清单
  • 深度学习场景优先用conda install pytorch(由社区维护的预编译包更稳定)
  • pip install package==1.2.0可指定版本号

进阶效率技巧

  • 学习列表推导式等语法糖,提高代码简洁性和可读性
  • 养成写docstring的习惯,用help(func)随时查阅函数说明
  • 使用if __name__ == "__main__":组织模块代码,支持模块化导入
5. 常见误区辨析
常见误区正确理解
变量名可以以数字开头只能以字母或下划线开头
Python关键字可用作变量名35个关键字(if、for、False等)不能用作变量名
变量名不区分大小写Python严格区分大小写
input()可直接获得数字始终返回字符串,需int()转换
=表示“等于”=是赋值,==才是比较
变量需要声明类型Python是动态类型,类型由赋值决定
变量直接存储数据存储的是对内存对象的引用
修改变量A不影响变量B(当B=A时)对于可变对象(list/dict),两个变量指向同一对象,相互影响
print总是输出到屏幕file参数可指定输出到文件
字符串可以直接原地修改字符串是不可变类型,修改需创建新字符串
0.1 + 0.2精确等于0.3存在浮点精度误差,需容差比较

通过本篇内容,你将掌握:

  • 搭建Python开发环境:学会安装Anaconda、配置VS Code或PyCharm、创建Jupyter Notebook,为后续开发做好准备
  • 理解Python的核心概念:掌握变量与对象的内存关系、动态类型机制、三种格式化输出方法的区别与适用场景
  • 熟练使用print()和input()内置函数:掌握sep、end、file参数的实际用途,灵活控制输出格式
  • 掌握变量命名规范:理解硬性规则与PEP 8最佳实践,避免使用Python关键字和内置函数名作为变量名
  • 识别常见编程错误和误区:了解TypeErrorValueError等常见错误的成因,学会通过阅读错误信息定位问题
  • 掌握文件操作的正确方法:使用with open()上下文管理器安全操作文件,区分追加和覆盖两种写入模式
  • 为后续学习打好基础:理解变量与对象的内存模型,为后续学习列表、字典、函数、类、装饰器等进阶知识奠定基石

下一章见

http://www.zskr.cn/news/1498200.html

相关文章:

  • 实景孪生赋能智慧监管 | 黎阳之光监狱全域透明智能化管理解决方案
  • 2025_NIPS_Neural Functional Transformers
  • 淮南初三考不上高中怎么办?——推荐淮南职业技术学院(中专部) - 我叫小周
  • CNN卷积神经网络学习笔记
  • 【分享】间歇性断食最新版[特殊字符]海量减肥菜谱|饿出真理|减肥必备
  • 2026 年 6 月腕表维保指南,深圳劳力士标识磨损失去光泽,深圳劳力士分享无损修复工艺与避坑小知识 - 亨得利官方维修中心
  • 2026报考指南:四川专升本上线率高的专科学校推荐 - 品牌2026
  • 2026年波兰电池/能源/储能技术展深度盘点:TOP5储能解决方案与欧洲市场前沿趋势解析 - 品牌发掘
  • 2026年6月指路牌灯箱厂家志科推荐指南 - 多才菠萝
  • 2026年合肥医药卫生学校怎么报名?招生条件是什么? - cc江江
  • CAD图纸怎么转换为PDF格式?如何将CAD直接导出为PDF?4个方式轻松搞定!
  • Linux系统编程-线程、互斥锁与多线程模块的封装
  • 避坑指南:VS Code verilog-format插件配置最常见的3个错误(及正确设置方法)
  • 配电网通信技术全解析:架构方案与应用
  • 2026年重庆市健身塑形训练营哪家好 重庆SGO封闭式健身训练营 联系电话:19122466397 - 速递信息
  • 避坑指南:MMSegmentation训练自定义数据集时,这些配置项千万别乱改(基于UperNet消融实验)
  • 别再只知EMD了!VMD、SSA、ITD算法选型指南:从原理到场景的深度解析
  • 铲屎官必看!猫咪掉毛自救指南 - 品牌测评鉴赏家
  • 广州无证书钻石别扔!添价收免费检测估价,不压价秒到账 - 薛定谔的梨花猫
  • 上海防水堵漏公司对比:晶亮 VS 传统公司,3 大维度见真章 - 热点速览
  • 龙虾很强,但企业需要「帝王蟹」!
  • 别再手动复制了!用RStudio的sink()函数自动记录你的完整分析日志
  • KAPT生成代码的集成与管理
  • 海悟参编液冷不锈钢管路团标 完善数据中心液冷温控标准体系
  • 无锡装修公司真实口碑汇总:综合实力与客户认可度双优装企解析 - 装修新知
  • 创梦汤锅学习日记day28
  • 2026年上海徐汇区寻宠秘籍:这家宠物店如何成为找猫高手?
  • 2026 安丘厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 厦门钻石上门回收哪家安全?本地盘点钻戒回收隐患避坑 - 开心测评
  • 2026北京卡地亚回收避坑指南!看懂套路、精准估价、稳妥出手 - 薛定谔的梨花猫