Python的基础入门学习笔记
1.环境搭建与IDE配置venv/uv1.1 venv和uv的区别venv 是 Python 标准库自带的虚拟环境工具为每个项目复制一份独立的解释器目录与第三方包目录uv 是用 Rust 编写的高性能 Python 版本与包管理器能用更少的命令、更快的速度完成同样的事。1.2 venv创建虚拟环境总流程1.确认解释器版本Windows 用 python 或 py -3macOS / Linux 用 python3python --version我用的是python3.13.112.建项目目录并进入mkdir todo-app cd todo-app在pycharm里面需要分成两次输入,不然会报错3.用标准库 venv 创建虚拟环境生成 .venv 目录无输出即成功python -m venv .venv4.激活环境激活成功后命令行提示符前出现 (.venv)Windows PowerShell.venv\Scripts\Activate.ps1Windows CMD.venv\Scripts\activate.batmacOS / Linuxsource .venv/bin/activate5.激活后再装包只影响当前 .venvpython -m pip install requests6.退出当前虚拟环境deactivate1.3 uv创建虚拟环境1.uv 等价流程不用手动 activateuv run 会自动使用 .venv 里的解释器uv venv # 等价于 python -m venv .venv速度快得多2.uv pip install requests # 等价于激活后的 pip install3.uv run python main.py # 无需激活直接在该环境里执行脚本4.uv python list # 查看本机可用 / 可下载的 Python 版本2.核心语法、数据类型与运算符2.1 变量的基本使用2.1.1标识符第一个字符必须以字母a-z, A-Z或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感count 和 Count 是不同的标识符。标识符对长度无硬性限制但建议保持简洁一般不超过 20 个字符。禁止使用保留关键字如 if、for、class 等不能作为标识符2.1.2注释Python中单行注释以#开头,还有一个快捷键ctrl/,多行注释(内容)2.2数据类型的基本分类2.2.1标准数据类型1.不可变数据4 个Number数字、String字符串、bool布尔、Tuple元组2.可变数据3 个List列表、Dictionary字典、Set集合2.3运算符2.3.1算术运算符加-减*乘/除//整除%取余模运算)**幂运算2.3.2比较运算符等于!不等于大于小于 ​​​​​​​大于等于小于等于2.3.3逻辑运算符and与 ​​​​​​​or或not非2.3.4赋值运算符加后赋值 ​​​​​​​-减后赋值 ​​​​​​​*乘后赋值 ​​​​​​​/除后赋值 ​​​​​​​//整除后赋值 ​​​​​​​ ​​​​​​​%取余后赋值**幂后赋值2.3.5成员运算符in在……之中not in不在……之中2.3.6身份运算符is是同一个对象is not不是同一个对象2.4数据类型转换有时候我们需要对数据内置的类型进行转换数据类型的转换一般情况下你只需要将数据类型作为函数名即可。Python 数据类型转换可以分为两种1.隐式类型转换 - 自动完成:较低数据类型整数就会转换为较高数据类型浮点数2.显式类型转换 - 需要使用类型函数来转换:需要用户将对象的数据类型转换为所需的数据类型2.5分支语句2.6 for循环语句迭代循环用于遍历序列或可迭代对象,可以2.7while循环基本格式:如果 while 后面的条件语句为 false 时则执行 else 的语句块。语法格式如下while expr: statement(s) else: additional_statement(s)2.8 isdigit() 与 isinstance()对比对比项isdigit()isinstance()类型字符串的方法Python内置函数调用方式字符串.isdigit()isinstance(对象, (类型,...))作用对象只能对字符串调用可以判断任何类型的对象判断内容判断字符串内容是否全由数字字符组成即长得像不是纯整数判断对象是否属于指定的某类/某几类类型返回结果布尔值True/False布尔值True/False能否判断整数✅如123✅如123能否判断浮点数❌3.14→ False✅若写了float能否判断负数❌-5→ False✅若写了int/float判断对象还是内容判断字符串内容判断对象的数据类型典型应用校验用户输入的字符串是否为纯数字检查变量是否为某类型做分支处理支持类型继承不涉及✅ 支持子类也算b isinstance(num, (int, float, str))这里的isinstance用于判断num这个变量本身是否属于int、float、str这三种类型中的某一种。如果num 5→b True如果num 3.14→b True如果num 123→b True因为包含str如果num [1,2]→b False关键区别一句话:isdigit()看长相这个字符串看起来是不是一串数字字符。isinstance()看身份这个变量本质上属于什么类型。注意isinstance(num, (int, float, str))把str也放进去了所以字符串也会返回True。如果你本意是判断是不是数字就不应该包含str写(int, float)更合适。而isdigit()只能用在字符串上用来判断字符串内容是不是数字。2.9 for和while循环的区别对比项for循环while循环循环次数固定/可数遍历某个序列列表、字符串、range等不确定只要条件成立就一直循环条件依赖依赖还有没有下一个元素依赖条件是否为真是否必须手动更新不需要自动取下一个必须在循环体里手动改变条件变量否则死循环适用场景我要循环N次 或 遍历每个元素我要循环直到某个条件不再成立何时进循环进入时就知道要循环多少次每次执行前才判断条件能用for就用for遍历列表、字符串、range(n)固定次数时更简洁、不易出错。必须用while的情况循环次数无法预知只能靠条件判断。典型例子——让用户一直输入直到输入quit才退出。3.break和continue的使用都可以用在while和for循环里continue:跳过本次循环,执行下次循环语法格式:for item in iterable: if 跳过条件: continue # 处理代码break:结束本次循环for item in iterable: if 跳过条件: break # 结束循环实例:4.循环结合else的基本使用实战效果:5.字符串的基本使用和基本操作5.1.1基本使用三种创建方式:单引号: str hello world双引号创建: str hello world多行字符串创建: str hello world hello world 5.1.2基本操作(增删改查)注意字符串是不可变类型所有的增删改查本质都是通过方法生成一个新的字符串原字符串不改变.1增定义一个原始字符串作为操作对象s hello world 增在原有字符串基础上扩充内容 print( 增拼接 ) 1. 使用 拼接 new_s s python print(new_s) hello world python 2. 使用 * 重复 print(ab * 3) ababab2删定义一个原始字符串作为操作对象 s hello world 删删除字符串中的指定内容 print( 删利用替换实现删除 ) 1. 使用 replace 替换为空字符串实现删除 print(s.replace(l, )) heo word 删除所有l 2. 删除字符串两侧的同时可指定删除的字符 print(###hello###.strip(#)) hello 删除指定的#字符 3. 切片思想保留除了指定位置以外的内容 print(s[:2] s[3:]) helo world 删除索引2位置的字符3改定义一个原始字符串作为操作对象 s hello world 改替换/转换字符串的内容 print( 改替换 ) 1. 替换指定内容 new_s s.replace(world, python) print(new_s) hello python print( 改大小写转换 ) 2. 大小写转换 print(s.upper()) HELLO WORLD 全部转大写 print(s.lower()) hello world 全部转小写 print(hello.capitalize()) Hello 首字母大写 print( 改去除空白 ) 3. 去除字符串两端的空白字符 str_space hello print(str_space.strip()) hello 去掉两端空白 print(str_space.lstrip()) hello__ 去掉左边空白 print(str_space.rstrip()) __hello 去掉右边空白 print( 改分割与拼接 ) 4. 分割与拼接 list1 s.split( ) 按空格分割成列表 print(list1) [hello, world] str_list [a, b, c] print(-.join(str_list)) a-b-c 用-将列表拼接成字符串4查读取字符串中的内容定义一个原始字符串作为操作对象 s hello world 查读取字符串中的内容 print( 查索引取值 ) 1. 通过索引取值正向从0开始反向从-1开始 print(s[0]) h print(s[-1]) d print(s[0:5]) hello 切片含头不含尾 print(s[6:]) world 从索引6到末尾 print( 查查找位置 ) 2. 查找子串的位置 print(s.find(world)) 6返回第一次出现的下标找不到返回-1 print(s.index(o)) 4功能同find找不到会报错 print(s.count(l)) 3统计子串出现次数 print( 查判断 ) 3. 判断 print(s.startswith(he)) True 是否以指定内容开头 print(s.endswith(ld)) True 是否以指定内容结尾 print(hello in s) True 是否存在 print(abc not in s) True 是否不存在5.1.3实战示例:切片操作,注意切片包含开始索引,不包含结束索引,所以结束索引要在原来的位置加1身份证号码信息解析 id input(请输入身份证号码: ) print(f出生日期为:{id[6:14]}) if int(id[-2]) % 2 0: print(性别为女) else: print(性别为男)用户名规范化处理 # strip()表示去除字符串首尾的空格字符 # title()表示每个单词首字母大写,其他字母小写 # capitalize()表示字符串的第一个字符大写,其他字符小写 name input(请输入用户名: ) name name.strip() name name.title() print(name)手机号脱敏显示 # replace()表示替换字符串中的子字符串,将前面的子字符串替换为后面的子字符串 # 注意:切片时,不包含结束索引,包含开始索引 phone input(请输入手机号: ) if len(phone) 11: print(f手机号为:{phone.replace(phone[3:7], ****)}) else: print(手机号格式错误) count phone.count(1) print(f手机号中包含的1的数量为: {count})统计英文句子单词个数与最长单词 # max()表示返回列表中最大的元素,keylen表示根据元素的长度进行比较 sent hello, world. python sent sent.replace(,, ) sent sent.replace(., ) print(sent) list1 sent.split( ) print(list1) print(f单词列表长度为:{len(list1)}) print(f最长单词为:{max(list1, keylen)},长度为:{len(max(list1, keylen))})def highlight(text, keyword): keyword [keyword] if isinstance(keyword, str) else keyword result text for i in keyword: if i in result: result result.replace(i, f**{i}**) else: print(关键词不存在) return text return result print(highlight(我很喜欢python这门语言, python)) print(highlight(我喜欢python和apple, [python, apple])) print(highlight(hello world, java))这里运用isinstance来判断输入内容是否是字符串,然后定义一个新变量来装列表内容,利用for循环结合else实现整体逻辑

相关新闻

Python进阶与并发编程14:boreal偶尔503,重试一次究竟要花掉谁的预算

Python进阶与并发编程14:boreal偶尔503,重试一次究竟要花掉谁的预算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 15:38:36 阅读更多 →
28:分离整数的各个数位

28:分离整数的各个数位

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 15:38:36 阅读更多 →
RVC 上手教程:10 分钟录音从零到出 AI 变声模型

RVC 上手教程:10 分钟录音从零到出 AI 变声模型

RVC 上手教程&#xff1a;10 分钟录音从零到出 AI 变声模型 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-We…

2026/10/19 15:37:33 阅读更多 →

最新新闻

open-code-review:构建人机协作的高效代码审查体系

open-code-review:构建人机协作的高效代码审查体系

1. 为什么代码审查总是形同虚设——open-code-review想解决的真实问题1.1 代码审查在工程实践中的尴尬现状我在一线做研发和带团队的时间加起来超过十年&#xff0c;换过几家公司&#xff0c;也看过不少代码评审流程从制定到瓦解的全过程。几乎所有团队在创业初期都说要做代码审…

2026/10/19 21:41:53 阅读更多 →
DVWA暴力破解四个级别详解:从无防护到账户锁定的攻防演进

DVWA暴力破解四个级别详解:从无防护到账户锁定的攻防演进

1. 从一次登录框测试说起&#xff1a;暴力破解到底在破什么很多人第一次接触DVWA的暴力破解模块&#xff0c;注意力都放在“怎么把密码跑出来”上&#xff0c;结果跑通一次之后&#xff0c;脑子里留下的只有Burp的Intruder界面和一堆字典文件&#xff0c;换个环境就不知道从哪下…

2026/10/19 21:40:51 阅读更多 →
如何做好开放式Code Review:一套可落地的团队评审实践

如何做好开放式Code Review:一套可落地的团队评审实践

1. 为什么我坚持把 Code Review 做成“开放式”的先聊点实在的。我做了十几年开发&#xff0c;带过团队&#xff0c;也经历过各种规模的评审流程&#xff0c;从两个人结对互相看代码&#xff0c;到几十人团队的正式评审会议&#xff0c;都试过。一个特别明显的感受是&#xff1…

2026/10/19 21:39:49 阅读更多 →
WinForms DataGridView下拉框动态绑定与联动实战

WinForms DataGridView下拉框动态绑定与联动实战

简介&#xff1a;本资源是一份面向C#初学者与Windows桌面开发者的实用代码实践包&#xff0c;聚焦解决DataGridView控件中动态集成下拉列表&#xff08;ComboBox&#xff09;这一高频交互需求&#xff0c;适用于数据录入界面、配置管理模块等实际业务场景。压缩包共22个文件&am…

2026/10/19 21:39:49 阅读更多 →
以沟通为中心的坐席工作台:DeskcommCRM的设计与实践

以沟通为中心的坐席工作台:DeskcommCRM的设计与实践

1. 坐席工作台的现实困境&#xff1a;DeskcommCRM 要解决的真正问题1.1 痛点&#xff1a;每天在五个系统之间来回切换我这几年见过太多客服团队和销售团队的真实工作状态&#xff1a;早上打开电脑&#xff0c;登录客服工单系统看排队&#xff0c;打开IM工具回消息&#xff0c;切…

2026/10/19 21:39:49 阅读更多 →
开放式代码审查:构建高效协作与质量保障的工程实践

开放式代码审查:构建高效协作与质量保障的工程实践

1. 项目概述&#xff1a;为什么我们需要"开放"的代码审查先说结论&#xff1a;open-code-review 不是什么高深莫测的框架&#xff0c;它是一套把 code review 从"走流程"变成"沉淀技术资产"的工程实践方案。我把它理解成三件事的组合&#xff1a…

2026/10/19 21:39:49 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介&#xff1a;本资源为电源技术方向的学术研究文档&#xff0c;聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略&#xff0c;面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集&#xff0c;共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →