资讯动态

Python函数及容器(字符串)

发布时间:2026/8/23 1:12:34 来源:尧图企业网站定制
一、Python函数这里介绍Python 三类函数无参无返回值函数、有参无返回值函数、有参有返回值函数。这三类Python函数按是否带参数、是否返回结果划分无参无返回最简单但不灵活有参无返回较灵活但结果不能复用有参有返回最灵活、复用性最强是开发最常用的函数。1. 无参无返回值函数# 无参无返回值不调用就不执行 函数注意事项 1. 必须先定义再调用 2. 函数定义的时候如果没有形参调用的时候不需要传递实参 3. 函数定义的时候如果没有return返回值调用的时候不用接收 4. 函数不调用不执行 5. 函数可以重复使用每调用一次就执行一次 # 需求求两个数的乘积# 定义函数defproduct_file():a2b3product2*3print(product)# 调用函数product_file()print(---------------)# 打印product_file()print(product_file())print(---------------)aproduct_file()print(---------------)print(a)2. 有参无返回值函数 函数注意事项 1. 必须先定义再调用 2. 函数定义的时候如果没有形参调用的时候不需要传递实参 3. 函数定义的时候如果没有return返回值调用的时候不用接收 4. 函数不调用不执行 5. 函数可以重复使用每调用一次就执行一次 6. 建议自定义函数使用形参这样会使函数更加灵活 # 与上述相比有了形参更灵活一些# 计算两数的乘积defproduct_total(a,b):print(a*b)# 结果返回到控制台# 无法再进行使用product_total(43,5)print(----------------)print(product_total(43,5))aproduct_total()1print(a)print(------------------)结果与第一种情况差不多3. 有参有返回值函数 函数注意事项 1. 必须先定义再调用 2. 函数定义的时候如果没有形参调用的时候不需要传递实参 3. 函数定义的时候如果没有return返回值调用的时候不用接收 4. 函数不调用不执行 5. 函数可以重复使用每调用一次就执行一次 6. 建议自定义函数使用形参这样会使函数更加灵活 7. 建议自定义函数使用 return 返回值这样会使得函数结果更加灵活可以二次使用 # 两数之差defdiff(a,b):resulta-breturnresultprint(diff(1,3))# 打印不再出现 None而是有具体的值print(----------------)diff_rediff(3,5)1print(diff_re)# 赋值不报错4. 三类Python函数对比表维度无参无返回值函数有参无返回值函数有参有返回值函数核心特征固定值运算无参数传入无结果返回内部直接执行操作如打印接收外部参数适配不同输入无结果返回内部处理操作接收外部参数计算后返回结果函数仅负责核心逻辑无额外操作优点1. 极简易用新手易上手2. 操作闭环无需外部处理1. 灵活性提升支持任意参数输入2. 仍保持简单调用仅需传参1. 极致灵活适配任意输入结果可复用2. 低耦合符合单一职责原则3. 可组合嵌套调用缺点1. 完全不灵活仅能处理固定值2. 结果无法外部复用1.结果无法外部复用2. 耦合性高计算输出绑定1. 对新手稍复杂需理解返回值概念2. 需手动接收/处理返回值否则结果丢失复用性几乎为0改逻辑需改函数内部较高传不同参数即可复用极高参数灵活结果可二次加工适用场景固定简单操作如打印固定提示、初始化固定配置计算即时输出如打印报表、日志记录绝大多数业务场景计算、数据处理、接口调用等5. 用函数实现猜数字小游戏importrandom# 定义函数defguessnum_game(guessNum,randNum,i):ifguessNumrandNum:print(f恭喜您第{i}次猜对啦)returnTrueelifguessNumrandNum:print(f猜大啦您已经猜了{i}次请继续猜)elifguessNumrandNum:print(f猜小啦您已经猜了{i}次请继续猜)returnFalserand_numrandom.randint(1,100)# 记录次数i0# 直到猜对为止whileTrue:guess_numint(input(请输入您猜的数))i1ifguess_num0orguess_num100:print(您输入的数字无效请输入1-100之间的数字!)else:# 调用函数并判断是否猜对猜对则终止循环ifguessnum_game(guess_num,rand_num,i):break二、字符串1. 空字符串变量名定义方式变量值数据类型说明c1单引号定义空字符串 ‘’空字符串class ‘str’单行空字符串的常规写法c2双引号定义空字符串 “”空字符串class ‘str’与单引号效果完全一致c3三单引号定义空字符串 ‘’‘’’空字符串class ‘str’三引号本用于多行字符串空值时仍为 str 类型c4三双引号定义空字符串 “”“”“”空字符串class ‘str’与三单引号效果完全一致c5str() 强制转换空字符串class ‘str’内置函数生成空字符串# 1. 定义空字符串c1c2c3c4# 2. 强制转换字符串c5str()print(c1,c2,c3,c4,c5)print(type(c1),type(c2),type(c3),type(c4),type(c5))2. 字符串中常用函数知识点类别具体方法/语法核心规则易错点/注意事项长度计算len(字符串)统计字符串中所有字符字母、空格、标点、数字等的总数空字符串len()返回 0子串计数字符串.count(子串)统计子串在字符串中出现的次数区分大小写子串不存在时返回 0需精准匹配连续字符如count(is)匹配完整的 “is”索引查找报错型index()/rindex()1.index()从左找子串首次出现的正索引2.rindex()从右找子串最后出现的正索引3. 索引从 0 开始计数子串不存在时直接抛出ValueError异常索引查找安全型find()功能与index()一致但子串不存在时返回 -1不报错find()是更推荐的安全查找方式字符取值字符串[索引值]1. 正索引从左数0 为第一个字符2. 负索引从右数-1 为最后一个字符索引超出范围会抛出IndexError异常核心要点总结字符串长度、计数、索引是最基础的三类操作len()/count()/find()是高频且安全的组合。索引查找的核心区别index()报错 vsfind()返回 -1实际开发中优先用find()避免程序崩溃。正/负索引的计数规则是基础正索引从 0 开始负索引从 -1 开始所有查找方法返回的索引默认是正索引。# 2. 定义非空字符串s6Clara is a beauty and that is a fact.# 需求1 查询总长度print(len(s6))# 需求2查询‘is’出现的个数print(s6.count(is))print(s6.count(a))# 如果子串没有找到默认返回0print(s6.count(中))# 需求3查询‘a’出现的位置# index从左往右但是按照正索引返回print(s6.index(a))# rindex从右往前找但是按照正索引返回print(s6.rindex(a))# 字符串特有的# 如果子串没有找到索引直接报错# print(s6.rindex(中))print(s6.find(a))# 找不到返回-1print(s6.find(中))# 需求4查询索引为3、0、-1对应位置的字符print(s6[3])print(s6[0])print(s6[-1])3. 字符串中特有函数知识点类别具体方法/语法核心规则易错点/注意事项索引查找find()/rfind()1.find()从左找子串首次出现的正索引找不到返回 -12.rfind()从右找子串最后出现的正索引找不到返回 -1均返回正索引区别仅为查找方向比index()更安全字符串替换字符串.replace(旧子串, 新子串, 替换次数)1. 第三个参数可选指定最多替换次数不指定则替换所有匹配项2. 原字符串不变返回新字符串字符串是不可变类型替换后需用新变量接收结果切割与拼接split(分隔符)/分隔符.join(列表)1.split()按指定分隔符切割字符串返回列表分隔符为空格时会切割出空字符串元素2.join()将列表元素按指定分隔符拼接为字符串split和join是互逆操作join仅能拼接列表内的字符串元素去除空白strip()去除字符串首尾的空白字符空格、换行、制表符等不影响中间空白仅去首尾如需去全部空白需用replace( , )开头/结尾判断startswith(子串)/endswith(子串)判断字符串是否以指定子串开头/结尾返回布尔值True/False匹配的子串需完全一致如空格、大小写编码与解码encode(编码格式)/decode(编码格式)1.encode()字符串转二进制字节串b 开头常用编码utf8/gbk2.decode()二进制字节串转回字符串解码格式必须与编码格式一致否则报错中文推荐用utf8大小写转换upper()/lower()1.upper()所有字符转大写2.lower()所有字符转小写仅转换字母数字、符号、中文无变化核心要点总结字符串是不可变类型replace()/strip()等操作均返回新字符串原字符串不会被修改。查找类方法优先级find()/rfind()返回 -1比index()/rindex()报错更安全实际开发优先使用。编码解码核心规则“编码格式要匹配”utf8是跨平台通用编码gbk是中文Windows常用编码。split()join()是字符串拆分/拼接的核心组合可实现复杂的字符串格式调整。s 79clara is a beautiful girl21 beautiful girl97 # 1. 查找索引的函数print(s.find(a))# 从右往左但给正索引print(s.rfind(a))# 2. 替换s_news.replace(beautiful girl,beauty)# 可以替换多次s_new1s.replace(beautiful girl,beauty,2)# 原来的字符串不变print(s)print(s_new)# 3. 切割(split 和 join 互转)s_lists.split( )# 切割后形成列表print(s_list)# 字符串的连接操作列表-字符串new_s_str-.join(s_list)print(new_s_str)# 字符串去除空白规范操作split_ss.strip()print(split_s)# 字符串判断开头结尾操作# 开头是否以空格开头print(s.startswith( ))# 是否以空格结尾print(s.endswith( ))# 字符串的编码解码操作# 以 b 开头二进制优化展示s3你好世界s1s3.encode(utf8)s2s3.encode(gbk)print(s1)print(s2)print(---------)s1_utf8_decodes1.decode(utf8)print(s1_utf8_decode)s2_gbk_decodes2.decode(gbk)print(s2_gbk_decode)# 大小写转换nameClaraprint(name.upper())print(name.lower())4. 循环遍历字符串知识点类别具体循环类型核心规则适用场景 易错点for 循环遍历for 元素 in 容器1. 所有容器字符串、列表、字典等都可使用2. 直接遍历元素本身无需索引3.end 用于控制打印不换行优势代码简洁无需手动管理索引适用于“仅需获取元素”的场景while 循环遍历while 条件判断1. 仅序列类型字符串、列表、元组等有索引可用2. 核心逻辑通过索引遍历3. 四要素① 初始索引变量如i0② 条件判断如i len(s)③ 循环体通过s[i]取元素④ 索引自增i 1易错点❶ 忘记写i 1导致死循环❷ 索引超出范围如i len(s)报错字符串遍历对比for vs while1. for 循环简洁高效优先使用2. while 循环需手动控制索引适合“需要索引元素”或“自定义遍历步长”的场景遍历字符串优先用 for 循环while 循环仅在需精准控制索引时使用核心要点总结for 循环是“遍历循环”直接获取容器中的每个元素所有容器通用遍历字符串时代码更简洁。while 循环是“索引循环”仅适用于有序的序列类型字符串属于序列必须手动管理索引的“初始值、条件判断、自增”易因遗漏自增导致死循环。字符串遍历最佳实践仅需获取字符元素 → 用 for 循环需要字符的索引如统计指定位置字符→ 用 while 循环。# 所有容器都能用forsclaraforiins:# for 循环又叫遍历循环可以直接拿到元素print(i,end )# 此处 i 代表每个元素print()# 序列才能用while# while核心思想是while充当索引使用# 1. 初始变量i0# 2. 条件判断whileilen(s):# 3. 循环体# 拿到索引然后找对应元素print(s[i],end )# 4. 条件函数i1三、结合 Python 字符串理解 Token词元概念1. Token 核心定义Token词元/令牌是数据处理的最小语义单元简单说就是把一段完整的文本/数据拆分成的“最小可处理小块”。2. 结合 Python 字符串例子理解 Token场景对应之前代码字符串操作中的“最小单元”Token 类比AI 大模型中的 Token 逻辑遍历字符串clara每个字符c/l/a/r/a就是一个“字符级 Token”AI 把文本拆成类似的最小单元如单字、词组再逐个处理统计is出现次数is是“双字符 Token”自定义语义单元AI 会把beautiful girl这类常用词组合并成一个 Token 提升效率切割字符串split( )按空格拆分后的每个片段如79clara是“片段级 Token”AI 处理长文本时会先拆分 Token再按 Token 计数/计费3. Token 核心特点结合代码逻辑可拆分性像字符串可拆分为单个字符/子串一样AI 处理文本时会先把整段话拆成 Token如Clara is a beauty→Clara/is/a/beauty。最小语义单元拆分的 Token 需保留基础语义不会把beauty拆成b/e/a这种无意义字符除非是生僻词。计数/计费基础代码中len(s)统计字符串总字符数字符级 Token 数AI 平台按 Token 数计费本质是统计“AI 处理的最小单元数量”类似代码中count()统计子串次数。4. 通俗类比把文本比作“一句话”Token 就是“一个字/一个词”把 AI 处理文本比作“你遍历字符串clara”你逐个打印字符处理字符级 TokenAI 逐个处理语义级 Token。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价