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

Python | 句子缩写

  • 字符串大小的比较
  • Unicode码值

类似于asc|| 码

小写字母从 'a' 到 'z' 对应的 Unicode 码值是从 97 到 122,而大写字母从 'A' 到 'Z' 对应的 Unicode 码值是从 65 到 90, 大小写字母之间的差值为32,所以可以通过数学运算将小写字符减去32后转换为大写字符。

  • 字符的大小写判定和转换

那如何判定字符是不是小写字符呢? Python提供了对应的方法islower()用于检查字符串中的字符是否都是小写字母,因此可以使用s[0]获取第一位字符,然后检查是否是小写字母。

转换成大写字符可以使用upper()方法,用于将字符串中的所有字符转换为大写字母。

除了上面两个方法外,isupper()用于检查字符串是否全部由大写字母组成,lower()方法将字符串中的所有字母转换为小写。

#如果首字母是小写,转换成大写
if s[0].islower():#将之转换成大写,拼接在result里result += s[0].upper()
else:#如果是大写,直接拼接在result中result += s[0]

然后从 s 的第二个字符开始遍历到倒数第二个字符(最后一个字符肯定不是一个单词,不需要拼接)。在循环中,检查当前字符是否为空格,并且下一个字符不是空格(这是为了跳过单词之间的多个空格),如果满足条件,则说明遇到了一个新的单词,下一个字符是这个单词的首字母,然后将下一个字符经过处理后添加到 result 中。

#遍历整个字符串,从索引1遍历到索引len(s) - 1,即最后一位字符(不包括该字符)
for i in range(1, len(s) - 1):#如果当前字符是空格,下一个字符不是空格,说明下一个字符是新单词if s[i] == ' ' and s[i + 1] != ' ':#判定新单词的首字母是否为大写,小写转换为大写if s[i + 1].islower():#将下一个字符经过处理后拼接到结果result里result += s[i + 1].upper()else:#将下一个字符直接拼接到result里result += s[i + 1]
  • 字符串遍历练习

见上

  • 函数的定义

语法:

def 函数名(形参列表):函数体

def:定义函数时,在函数前必须要有这个关键字,是不可更改不可缺少的

所以将小写字符转换成大写字符的函数如下:

def change_char(a):if 'a' <= a <= 'z':#第一步:通过ord(a),houqu unicode码值,然后减去32,表示对应大写字母的码值#第二步:通过chr()函数将unicode码值转换为对应的字符a = chr(ord(a) - 32)return a
  • ord()函数和chr()函数

见上

  • 形参和实参

如果实参是可变对象(例如,列表或字典),函数内的操作可能会影响到实参,这是因为在这种情况下,形参和实参引用的是同一个地址

def modify_list(lst):lst.append(4)print(lst)my_list = [1, 2, 3]
modify_list(my_list) # 列表将地址传给函数,函数中对列表进行append()操作,列表的内容改变
print(my_list) # [1, 2, 3, 4]

原代码

def change_char(a):if 'a' <= a <= 'z':a = chr(ord(a) - 32)return an = int(input())
for _ in range(n):s = input()result = ""#先判断a的大小写情况result += change_char(s[0])#遍历整个字符串for i in range(1, len(s) - 1):if s[i] == ' ' and s[i + 1] != ' ':result += change_char(s[i + 1])print(result)

简易写法:

n = 0
n = int(input())
for _ in range(n):words = input().split()result = ''for word in words:result += word[0].upper()print(result)

http://www.lryc.cn/news/363972.html

相关文章:

  • STM32自己从零开始实操04:显示电路原理图
  • 数分—AB测试
  • 基于全志T507-H的Igh EtherCAT主站案例分享
  • 刷题记录(20240605)
  • CUDA和OpenGL纹理texture结合
  • 市场凌乱,智能算法哪种效果好?
  • 学会这14大招,30天涨粉两三千没问题!沈阳新媒体运营培训
  • SQL数据库性能优化
  • eNSP学习——RIP路由协议基础配置
  • 备考系统架构设计师,看这篇就够了!(包括核心总结、真题、论文、模拟试题索引)
  • stm32编译原理
  • 如何以JNI方式实现安卓APP控制GPIO?
  • 计算机网络学习笔记——运输层(b站)
  • HBase数据库面试知识点:第二部分 - 核心技术(持续更新中)
  • Spring 使用SSE(Server-Sent Events)学习
  • 词法分析器的设计与实现--编译原理操作步骤,1、你的算法工作流程图; 2、你的函数流程图;3,具体代码
  • linux查看磁盘类型命令
  • 多线程调用同一个不包含可变状态,并且是线程安全的方法时,可同时执行,不必等待排队
  • Java文件操作①——XML文件的读取
  • 【记录】网络|没有路由器没有网线,分别使用手机或Windows电脑共享网络给ARM64开发板,应急连接
  • 一键设置常用纸张和页面边距-Word插件-大珩助手
  • 在树莓派3B+中下载opencv(遇到的各种问题及解决)
  • 精准检测,安全无忧:安全阀检测实践指南
  • Transformer系列:图文详解KV-Cache,解码器推理加速优化
  • 基础篇03——SQL约束
  • 人工智能--深度神经网络
  • VOC格式标签各个字段的解释
  • 2024年端午节放假通知
  • Transformer系列:注意力机制的优化,MQA和GQA原理简述
  • Python知识点11---高阶函数