Python基础教程

发布时间:2026/9/18 9:54:26

Python基础教程 pyhton 编辑器vim/pycharm/vscodelinux python3 --version windowspython --version运行python 代码交互模式在命令行输入python3 进入print(hello world) # 使用print函数输入“Hello world!”退出ctrld exit脚本模式快捷键ctrlz 后退健ctrl/ 增加注释 /取消注释# 注释sep表示多个元素之间的分割符如果不修改默认是空格print(hao,123,sep***) # 打印两个字符串hao和数字123, 修改默认分隔符为 ***end表示print语句的结束符如果不修改默认是换行\nprint(hao,123,com,sep***,end!!!\n)print(中国,end-) print(广州,end-) print(天河) 中国-广州-天河altp 出现提示 使用提示的语句Tab 加 两数字相加 两个字符窜是组合输入 input输入类型字符窜type检测数据类型a int(input(请输入数字1)) b int(input(请输入数字2)) print(ab)print (14) #5print(14) #14a input(商品标题) b input(请输入商品价格) print(商品标题: a 价格 b 元)litle input(请输入商品: )price float(input(请输入价格: ))print(商品标题: litle 价格 str(price) 元)请输入商品: ? 苹果请输入价格? 5.5商品标题: 苹果价格5.5元变量# float() 转为浮点型 # total 0 # price1 float(input(请输入蔬菜的单价)) # num1 float(input(请输入蔬菜的数量)) # price2 float(input(请输入牛肉的单价)) # num2 float(input(请输入牛肉的数量)) # # total price1 * num1 price2 * num2 # print(总价, total)数字型n1 2 整数 n2 3.14 浮点数字符窜 型Python中的字符串String是用于表示文本数据的数据类型使用单引号、双引号或三引号 或 来定义。字符串的特点不可变性字符串一旦创建其内容就不能被修改。有序性字符串中的字符按顺序排列可以通过索引访问。可迭代可以使用循环遍历字符串中的每个字符。字符串的创建# 使用单引号 str1 Hello # 使用双引号 str2 World # 使用三引号多行字符串 str3 这是一个 多行 字符串 # 空字符串 empty_str # 字符串中包含引号 quote_str He said, Python is great! # 转义字符 escape_str 第一行\n第二行\t制表符字符串的常用操作访问字符使用索引索引从0开始pres Python print(s[0]) # 输出P print(s[-1]) # 输出n负索引表示从末尾开始切片操作获取子字符串s Hello World print(s[0:5]) # 输出Hello从索引0到4 print(s[6:]) # 输出World从索引6到末尾 print(s[:5]) # 输出Hello从开头到索引4 print(s[-5:]) # 输出World最后5个字符字符串连接s1 Hello s2 World result s1 s2 # 输出Hello World # 使用join方法 words [Hello, World, !] result .join(words) # 输出Hello World !字符串重复s Hi print(s * 3) # 输出HiHiHi字符串长度s Python print(len(s)) # 输出6成员检测s Hello World print(World in s) # 输出True print(Python not in s) # 输出True字符串常用方法方法描述示例str.upper()转换为大写hello.upper() → HELLOstr.lower()转换为小写HELLO.lower() → hellostr.strip()去除两端空白 hello .strip() → hellostr.split()分割字符串a,b,c.split(,) → [a,b,c]str.replace()替换子串hello.replace(l,x) → hexxostr.find()查找子串位置hello.find(ll) → 2str.startswith()检查开头hello.startswith(he) → Truestr.endswith()检查结尾hello.endswith(lo) → Truestr.format()格式化字符串{} {}.format(Hello,World) → Hello World字符串格式化三种方式name 小明 age 20 1. 使用 % 格式化旧式 print(姓名%s年龄%d % (name, age)) 2. 使用 format() 方法推荐 print(姓名{}年龄{}.format(name, age)) print(姓名{n}年龄{a}.format(nname, aage)) 3. 使用 f-stringPython 3.6最简洁 print(f姓名{name}年龄{age})转义字符\n换行\t制表符\\反斜杠\单引号\双引号\r回车\b退格原始字符串在字符串前加r或R转义字符不会被特殊处理原始字符串Raw String是 Python 中处理包含大量反斜杠字符的字符串的一种便捷方式。通过在字符串前添加前缀r或RPython 解释器会将该字符串视为原始字符串其中的反斜杠\不会被解释为转义字符而是作为普通字符处理。为什么需要原始字符串在普通字符串中反斜杠\用于表示转义序列如\n换行、\t制表符等。但在某些场景下我们需要反斜杠保持其字面意义Windows 文件路径Windows 使用反斜杠作为路径分隔符正则表达式正则表达式中经常使用反斜杠特殊字符序列需要保留反斜杠原样的场景原始字符串 vs 普通字符串下面通过对比示例来理解两者的区别# 普通字符串 - 反斜杠被解释为转义字符 path1 C:\Users\Name\Documents\file.txt print(path1) # 输出可能出错因为 \U、\N 等可能被解释为转义序列 原始字符串 - 反斜杠保持原样 path2 rC:\Users\Name\Documents\file.txt print(path2) # 正确输出C:\Users\Name\Documents\file.txt 另一个例子正则表达式中的反斜杠 pattern1 \d # 普通字符串需要双反斜杠 pattern2 r\d # 原始字符串单反斜杠即可 print(pattern1) # 输出\d print(pattern2) # 输出\d原始字符串的注意事项不能以奇数个反斜杠结尾原始字符串不能以单个反斜杠结尾因为反斜杠会转义后面的引号# 错误示例 # path rC:\Users\ # 语法错误反斜杠转义了后面的引号 正确做法 path rC:\Users \ # 或者使用普通字符串拼接 path C:\Users\ # 使用双反斜杠引号仍需转义原始字符串中的引号仍需要转义但反斜杠本身不会被转义# 原始字符串中的引号 raw_str rHe said, Hello! # 正确 raw_str rHe said, \Hello!\ # 正确但反斜杠会保留 print(rHe said, Hello!) # 输出He said, Hello!与格式化字符串结合Python 3.6 支持原始格式化字符串rf-stringsname Alice path rfC:\Users\{name}\Documents print(path) # 输出C:\Users\Alice\Documents实际应用场景文件路径处理# Windows 路径 windows_path rC:\Program Files\Python\Scripts print(windows_path) Unix/Linux 路径虽然 Unix 用正斜杠但有时也需要原始字符串 unix_path r/usr/local/bin/python3 print(unix_path)正则表达式import re 匹配数字的正则表达式 pattern r\d text 价格是123元 match re.search(pattern, text) if match: print(f找到数字{match.group()}) # 输出找到数字123SQL 语句# 包含反斜杠的 SQL 语句 sql rSELECT * FROM users WHERE path LIKE C:\Users\% print(sql)特殊字符序列# 需要保留反斜杠的场景 raw_data rColumn1\tColumn2\tColumn3\nValue1\tValue2\tValue3 print(raw_data) # 输出Column1\tColumn2\tColumn3\nValue1\tValue2\tValue3原始字符串是 Python 中处理特殊字符序列的强大工具特别是在处理文件路径、正则表达式和需要保留反斜杠的场景中非常有用。记住原始字符串只是改变了反斜杠的解释方式字符串的其他特性如不可变性、索引、切片等保持不变。path rC:\Users\Name\Documents # 反斜杠不会被转义 print(path) # 输出C:\Users\Name\Documentss1 hellos2 5print(s1,s2, typeb1)布尔型b1 Ture #真b2 False #假空 None原行输出 s3 1 2 3 4 5 6 7 8 9 print(s3) s3 《寄黄几复》 我居北海君南海 寄雁传书谢不能。 桃李春风一杯酒 江湖夜雨十年灯。 print(s3) 《寄黄几复》 我居北海君南海 寄雁传书谢不能。 桃李春风一杯酒 转字符类型 price5000 print(price,type(price)) pstr(price) print(p,type(p)) 5000 class int 5000 class strPython默认以十进制数显示数字以0o 或 0O开头表示为8 进制数数字以0x 或 0X开头表示16 进制数数字以0b 或 0B开头表示2 进制数n1 0b100 # 2进制以0b开头n2 0o12 # 8进制以0o开头n3 0xf # 16进制以0x开头print(n1, n2, n3)4 10 15n4 16# 进制转换print(2进制, bin(n4)) # 10000print(8进制, oct(n4)) # 0o20print(16进制, hex(n4)) # 0x102进制 0b100008进制 0o2016进制 0x10运算符运算符描述实例加10 20 30-减10 - 20 -10*乘10 * 20 200/除10 / 20 0.5//取整除返回除法的整数部分商 9 // 2 输出结果 4%取余数返回除法的余数 9 % 2 1**幂又称次方、乘方2 ** 3 8基本的数字类型有int有符号整数bool布尔值True1False0float浮点数小数逻辑运算符运算符逻辑表达式描述andx and y只有 x 和 y 的值都为 True才会返回 True否则只要 x 或者 y 有一个值为 False就返回 Falseorx or y只要 x 或者 y 有一个值为 True就返回True只有 x 和 y 的值都为 False才会返回 Falsenotnot x如果 x 为 True返回 False如果 x 为 False返回 True赋值运算符 - / × %截取字符串str helloworld print(str[2:5]) print(str[-5:]) print(str[5:]) print(str[:5])if判断age 22 if age 18: print(成年人) print(可以去网咖) else: print(未成年人) score int(input(请输入成绩)) if not 0 score 100: print(非法的成绩) elif score 90: # 0 score 100 print(优秀) elif score 80: # 0 score 90 print(良好) elif score 70: print(中等) elif score 60: print(及格) else: print(不及格)import random# 随机获取一个元素com random.choice([石头, 剪刀, 布])# print(com)# 玩家手动输入player input(玩家请出拳)# 判断胜负# 将电脑获胜的情况放到一个列表中 石头,剪刀 剪刀,布 布,石头# 将电脑和玩家的出拳放入到一个列表com_win [[石头, 剪刀],[剪刀, 布],[布, 石头]]if com player:print(平局)elif [com, player] in com_win:print(电脑胜)else:print(玩家胜)while 循环# 练习计算出1~100之间所有整数的和# 定义变量保存总和total 0 # 0 1 2 3 ... 100i 1while i 100:# i 代表所有整数# 将每个整数加到totaltotal ii 1# 循环结束后打印最终的总和print(总和, total)break 和continue# 循环打印1~10之间所有整数i 0while i 10:i 1# 如果i为5的时候if i 5:break # 跳出循环# continue # 跳过当前循环继续下一次循环print(i)else:# 当循环结束才会执行不包括break这种结束方式print(循环正常结束)# 使用循环打印输出1~100之间所有的偶数如果遇到奇数就跳过# i 1# while i 100:# # 如果遇到奇数跳过# if i % 2 1:# # 需要让i自增再跳过# i 1# continue# print(i)# i 1for循环score [72,83,90,60,52]total0for i in score:totaliprint(total/len(score))71.4Pythonscore [72, 83, 90, 60, 52] print(sum(score) / len(score)) # 结果同样是 71.4for i in range(1,11,2):print(i)13579for i in range(5):print(nihao1,i)nihao1 0nihao1 1nihao1 2nihao1 3nihao1 4
延伸阅读

更多相关文章

2026/9/16 3:21:33

网盘直链提取技术突破:八大主流网盘免会员下载方案解密

网盘直链提取技术突破:八大主流网盘免会员下载方案解密 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…

2026/9/18 11:19:28

Unity与Azure Kinect体感交互开发:从环境搭建到角色驱动实战

1. 项目概述:为什么选择Unity与Azure Kinect? 如果你对体感交互感兴趣,想亲手搭建一个能用手势或身体动作控制虚拟角色的应用,但又觉得从零开始门槛太高,那这个项目就是为你准备的。Unity作为游戏开发领域的“瑞士军刀…

2026/9/13 10:04:38

iOS-Debug-Hacks之寄存器与栈帧:深入理解程序执行流程

iOS-Debug-Hacks之寄存器与栈帧:深入理解程序执行流程 【免费下载链接】iOS-Debug-Hacks :dart: Advanced debugging skills used in the iOS project development process, involves the dynamic debugging, static analysis and decompile of third-party librari…

2026/9/18 18:52:50

GSM-R无线网络优化:覆盖、干扰与切换参数的工程实践

简介:GSM-R无线网络优化施工技术分析,聚焦铁路专用移动通信系统的关键优化问题,面向铁路通信工程师、无线网络优化人员及施工技术人员。文档基于实际施工案例,系统分析了GSM-R网络在无线覆盖、频率干扰、频繁切换等方面的典型故障…

2026/9/18 18:52:50

ANSYS平面薄板有限元分析入门:壳单元、网格与边界条件详解

简介:ANSYS有限元分析平面薄板.pdf是一份面向机械、力学、土木等工科专业初学者及ANSYS入门用户的有限元实操案例文档。文档以一块承受拉伸的带孔正方形薄板为对象,完整演示了从设置Job Name、选择四节点平面单元、定义材料弹性模量与泊松比,…

2026/9/18 18:52:49

银河麒麟OS上C#开发避坑指南:.NET Runtime选型与Avalonia部署

1. 为什么在银河麒麟OS上跑C#不是“装个.NET就能用”的简单事我第一次在银河麒麟V10 SP1(桌面版,Kylin Desktop V10 SP1,内核4.19.90)上尝试运行一个Avalonia写的串口调试工具时,连dotnet --version都报错——提示“找…

2026/9/18 14:13:01

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/18 0:01:09

Google Colab 实战:运行模型、数据加载与报错排查

1. 为什么我劝你先搞懂 Colab 的运行模型1.1 Colab 到底是什么,跟本地跑代码差在哪Google Colab 简单说就是一台跑在浏览器里的 Linux 虚拟机,你打开一个 Notebook,背后就连上了一台带 GPU 的远程机器。你在单元格里敲的每一行 Python&#x…

2026/9/18 0:01:09

C语言数据类型与表达式详解

1. C语言数据与数据类型概述在C语言编程中,数据是程序处理的核心对象。理解数据的分类和特性是掌握C语言的基础。C语言中的数据主要分为四大类:常量、变量、表达式和函数。这些数据类型构成了C语言程序的基本元素,每种类型都有其独特的特性和…

2026/9/18 0:01:09

SQL时间字段指定时间段查询:区间语义、索引与时区避坑

上周排查一个线上问题&#xff0c;用户反馈"昨天的订单一条都没查到"&#xff0c;但数据库里明明躺着两千多条。最后定位下来&#xff0c;不是数据丢了&#xff0c;也不是接口挂了&#xff0c;而是那个查询条件把时间段写成了> 2024-05-20 00:00:00 AND < 2024…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码