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

Python 源文件默认编码是 **UTF-8**(推荐使用),如果文件包含非 ASCII 字符(如中文),无需额外声明;若需使用其他编码(如 GBK),需在文件第一行/第二行声明

一、Python 解释器基础

1. 唤出解释器

Python 解释器是执行 Python 代码的核心程序,启动方式分两种:

  • 命令行交互模式:打开终端(Windows 用 cmd/PowerShell,macOS/Linux 用终端),输入python(Python 3 建议用python3),回车后看到>>>提示符,就进入了交互模式。
  • 退出交互模式:输入exit()或按Ctrl+Z(Windows)/Ctrl+D(macOS/Linux)。

2. 传入参数

启动解释器时可直接传入参数,比如执行单个语句、运行脚本:

# 执行单个语句(打印Hello)python3-c"print('Hello, Python')"# 运行Python源文件(假设文件名为test.py)python3 test.py# 传入自定义参数(在脚本中通过sys.argv获取)python3 test.py arg1 arg2

3. 交互模式

交互模式是「输入一行、执行一行」的模式,适合快速测试代码片段,比如:

>>>1+2# 输入后回车,立即返回结果3>>>print("交互模式测试")交互模式测试

4. 解释器的运行环境

  • 解释器启动时会加载系统的环境变量(如PYTHONPATH,指定模块搜索路径)。
  • 可通过sys模块查看运行环境信息:
    >>>importsys>>>sys.version# 查看Python版本'3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]'>>>sys.path# 查看模块搜索路径['','/usr/lib/python310.zip','/usr/lib/python3.10',...]

5. 源文件的字符编码

Python 源文件默认编码是UTF-8(推荐使用),如果文件包含非 ASCII 字符(如中文),无需额外声明;若需使用其他编码(如 GBK),需在文件第一行/第二行声明:

# -*- coding: GBK -*-print("中文测试")

二、Python 速览(基础数据类型)

1. Python 用作计算器

交互模式下可直接做数学运算,支持常见运算符:

>>>2+3# 加法5>>>10-4# 减法6>>>3*7# 乘法21>>>10/3# 除法(浮点数)3.3333333333333335>>>10//3# 整除(取整)3>>>10%3# 取余1>>>2**5# 幂运算(2的5次方)32

2. 数字

Python 支持三种核心数字类型:

  • 整数(int):无大小限制,如10-50
  • 浮点数(float):带小数,如3.14-0.5
  • 复数(complex):形如a + bj,如2+3j(极少用)。
>>>type(10)# 查看类型:int<class'int'>>>>type(3.14)# 查看类型:float<class'float'>>>>10+3.14# 不同类型混合运算,结果为float13.14

3. 字符串

用单引号(')、双引号(")或三引号('''/""")包裹文本,支持拼接、切片、转义等操作:

# 基本定义>>>s1='hello'>>>s2="world">>>s3='''多行 字符串'''# 拼接>>>s1+' '+s2'hello world'# 重复>>>s1*2'hellohello'# 切片(索引从0开始)>>>s='Python'>>>s[0]# 取第1个字符'P'>>>s[1:4]# 取第2-4个字符(左闭右开)'yth'>>>s[-1]# 取最后1个字符'n'# 转义字符>>>print('hello\nworld')# \n:换行hello world>>>print(r'hello\nworld')# r前缀:原生字符串(不转义)hello\nworld

4. 列表

Python 最常用的「可变有序序列」,可存放不同类型数据,支持增删改查:

# 基本定义>>>nums=[1,2,3,4,5]>>>mix=[1,'hello',3.14,[6,7]]# 嵌套列表# 访问元素>>>nums[0]# 取第1个元素1>>>mix[3][0]# 取嵌套列表的第1个元素6# 修改元素(列表可变)>>>nums[1]=20>>>nums[1,20,3,4,5]# 新增元素>>>nums.append(6)# 末尾添加>>>nums[1,20,3,4,5,6]# 切片>>>nums[1:4]# 取第2-4个元素[20,3,4]

三、走向编程的第一步(控制流与函数)

1. 更多控制流工具

(1)if 语句

根据条件执行不同代码块,支持if-elif-else结构:

>>>score=85>>>ifscore>=90:...print("优秀")...elifscore>=80:...print("良好")...else:...print("继续努力")...良好
(2)for 语句

遍历可迭代对象(列表、字符串、range 等),Python 的 for 是「迭代循环」,而非传统计数循环:

# 遍历列表>>>fruits=['apple','banana','orange']>>>forfruitinfruits:...print(fruit)...apple banana orange# 遍历字符串>>>forcharin'Python':...print(char)...P y t h o n
(3)range() 函数

生成整数序列,常配合 for 循环使用,语法:range(起始, 结束, 步长)(起始默认0,步长默认1,结束不包含):

>>>foriinrange(5):# 0-4...print(i)...01234>>>foriinrange(2,8):# 2-7...print(i)...234567>>>foriinrange(0,10,2):# 0-8,步长2...print(i)...02468
(4)循环中的 break、continue 及 else 子句
  • break:立即终止循环;
  • continue:跳过当前循环剩余部分,进入下一次循环;
  • else:循环正常结束(未被 break 终止)时执行:
# break示例>>>foriinrange(5):...ifi==3:...break...print(i)...012# continue示例>>>foriinrange(5):...ifi==3:...continue...print(i)...0124# else子句示例>>>foriinrange(5):...print(i)...else:...print("循环正常结束")...01234循环正常结束
(5)pass 语句

「空语句」,仅占位置,无实际功能,用于暂时未实现的代码块:

>>>ifscore>60:...pass# 后续补充逻辑...else:...print("不及格")...

2. 定义函数

def关键字定义函数,语法:def 函数名(参数): 函数体,支持返回值(return):

# 简单函数>>>defadd(a,b):..."""计算两个数的和"""# 文档字符串...returna+b...>>>add(3,5)# 调用函数8# 无返回值(默认返回None)>>>defprint_hello():...print("Hello, Python")...>>>res=print_hello()Hello,Python>>>print(res)None

3. 函数定义详解

(1)默认值参数

参数指定默认值,调用时可省略该参数:

>>>defgreet(name,msg="早上好"):...print(f"{msg}{name}!")...>>>greet("小明")# 使用默认msg早上好,小明!>>>greet("小红","下午好")# 覆盖默认值下午好,小红!
(2)关键字参数

调用函数时通过「参数名=值」传递参数,顺序可任意:

>>>defperson(name,age):...print(f"姓名:{name},年龄:{age}")...>>>person(age=20,name="小李")# 关键字参数姓名:小李,年龄:20
(3)特殊参数
  • 位置或关键字参数(默认):可通过位置或关键字传递;
  • 仅位置参数:用/标记,只能通过位置传递;
  • 仅限关键字参数:用*标记,只能通过关键字传递:
# / 前是仅位置参数,* 后是仅限关键字参数>>>deffunc(a,b,/,c,*,d,e):...print(a,b,c,d,e)...>>>func(1,2,3,d=4,e=5)# 正确12345>>>func(1,b=2,3,d=4,e=5)# 错误:b在/后不能用关键字>>>func(1,2,c=3,4,e=5)# 错误:d在*后必须用关键字
(4)任意实参列表

*args接收任意数量的位置参数(打包为元组):

>>>defsum_all(*args):...total=0...fornuminargs:...total+=num...returntotal...>>>sum_all(1,2,3)6>>>sum_all(5,10,15,20)50
(5)解包实参列表

*解包列表/元组,**解包字典,传递给函数:

>>>defadd(a,b):...returna+b...>>>nums=[3,5]>>>add(*nums)# 解包列表8>>>info={'name':'小张','age':18}>>>person(**info)# 解包字典(对应关键字参数)姓名:小张,年龄:18
(6)Lambda 表达式

定义「匿名函数」,简洁实现简单逻辑,语法:lambda 参数: 表达式

>>>add_lambda=lambdaa,b:a+b>>>add_lambda(4,6)10# 配合列表排序>>>students=[('小明',90),('小红',85),('小李',95)]>>>students.sort(key=lambdax:x[1],reverse=True)# 按分数降序>>>students[('小李',95),('小明',90),('小红',85)]
(7)文档字符串

函数内的第一个字符串,用于说明函数功能,可通过__doc__help()查看:

>>>defadd(a,b):...""" ... 计算两个数的和 ... 参数: ... a: 第一个数 ... b: 第二个数 ... 返回: ... 两个数的和 ... """...returna+b...>>>print(add.__doc__)# 查看文档字符串>>>help(add)# 更友好的帮助信息
(8)函数注解

对参数和返回值做类型说明(仅注释,不强制检查):

>>>defadd(a:int,b:int)->int:..."""a和b是整数,返回整数和"""...returna+b...>>>add(3.14,5)# 注解不限制类型,仍可传入浮点数8.14

4. 小插曲:编码风格

遵循 PEP 8 规范(Python 官方编码风格),核心要点:

  • 缩进用 4 个空格(不要用 tab);
  • 行长度不超过 79 个字符;
  • 函数/类之间空两行,代码块之间空一行;
  • 变量名用小写,多个单词用下划线分隔(如user_name);
  • 函数名用小写+下划线,类名用大驼峰(如MyClass)。

总结

  1. 基础环境:Python 解释器支持交互/脚本运行模式,源文件默认 UTF-8 编码,可通过sys模块查看运行环境;
  2. 核心数据类型:数字(int/float)、字符串(不可变)、列表(可变)是最基础的数据结构,支持运算、切片、增删改查;
  3. 控制流与函数:if/for 是核心控制流工具,range() 配合 for 实现计数循环;函数支持默认参数、关键字参数、Lambda 表达式等,遵循 PEP 8 编码风格可提升代码可读性。

这些知识点是 Python 入门的核心,建议你结合「交互模式测试 + 编写小脚本」的方式逐一练习,重点掌握列表操作、循环控制和函数定义,为后续进阶打下基础。

http://www.jsqmd.com/news/459336/

相关文章:

  • SAP 利润中心Profit是如何实现跨法人、穿透式管理的?
  • 基于堆叠自动编码器(SAE)的人脸图像识别:Matlab 实现
  • 第10章 移动平台着色器优化实战:从简化到高级技巧
  • schoober-ai-sdk:核心ReAct 引擎的实现
  • SAP 利润中心 + 分部报告 + 集团合并 + 多准则 是怎么联动成一套集团财务架构的
  • 基于 CAN 总线的 DSP280049C 升级方案全解析
  • OpenClaw Mac本地部署保姆级教程:手把手教你“养龙虾”
  • 不是烤串故事【牛客tracker 每日一题】
  • 探索三相并网逆变器LCL逆变之控制策略与仿真实践
  • AI-Native的定义与特征
  • 华为 MetaERP 的多组织、多帐套、多币种、多会计准则核算架构,核心是元数据驱动 + 云原生微服务 + 实时核算引擎 + 分布式数据底座,实现 “交易即核算、单账套多准则、全球实时合并”
  • MATLAB Simulink 中的 BCH 编码译码:穿越 AWGN 与 BSC 信道之旅
  • 手把手教你用ZYNQ打造一款便携式多通道频谱分析仪
  • 威纶通MT8071iE触摸屏宏指令程序:清晰注释下的开机页面与产量统计功能
  • OpenClaw 本地部署教程(Windows)| GitHub 爆火 AI Agent 框架安装指南
  • Android 蓝牙连接不稳定怎么解决?BLE 稳定性架构设计(上篇)
  • Unity Scroll View内容轮播实现
  • 探索STM32 Modbus RTU 主从机源码及其实践
  • 探索雷塞HBS86H 86闭环电机驱动器方案宝藏
  • 数据库系统工程师-操作系统 I/O 管理:数据库性能优化的底层核心
  • 基于YOLOv8的人脸表情识别系统【附源码】
  • 探索Potrace算法:位图矢量化的奇妙之旅
  • 一个创业老兵关于四个终极问题的二十年纪实
  • HTML_段落与换行
  • 微网综合能源优化调度代码合集:涵盖多种智能算法与实战应用场景
  • 负荷预测:布谷鸟优化的LSTM模型及对比分析
  • LazyCut
  • 在工控项目里最头疼的就是IO状态监控页面制作,每个按钮指示灯都得手动关联变量。上周调试KTP700触摸屏时突然开窍——做个万能IO显示模板不香吗
  • MATLAB P文件转码工具:将P文件转换为M文件
  • 发电机定子回路故障Simulink单相电流纵联差动保护仿真模型及动作电流波形分析