Python实现字母大小写互换

任务要求

1.输入一个包含大小写字母的字符串(如"Hello World!")

2.将字符串中的大写字母转为小写,小写字母转为大写

3.保留非字母字符不变

任务分析

字母大小写互换的核心逻辑在于:

1.ASCII码差异:大写字母(A-Z)的ASCII码范围为65-90,小写字母(a-z)为97-122,两者相差32。

2.内置函数:Python的str.swapcase()可直接实现该功能。

3.位运算优化:利用异或运算(^32)可快速切换大小写。

任务实现

方法1:使用内置函数swapcase()

def swap_case1(s):
return s.swapcase()
# 示例
print(swap_case1("Hello World!")) # 输出: hELLO wORLD!

说明:直接调用字符串的内置方法swapcase(),时间复杂度为O(n),代码最简洁。

方法2:循环遍历 + 条件判断

def swap_case2(s):
result = []
for char in s:
if char.islower():
result.append(char.upper())
elif char.isupper():
result.append(char.lower())
else:
result.append(char)
return ''.join(result)
# 示例
print(swap_case2("Hello World!")) # 输出: hELLO wORLD!

说明:

  • 遍历每个字符,通过islower()和isupper()判断大小写
  • 使用upper()和lower()转换后存入列表

方法3:ASCII码运算

def swap_case3(s):
swapped = []
for char in s:
ascii_val = ord(char)
if 65 <= ascii_val <= 90:
swapped.append(chr(ascii_val + 32))
elif 97 <= ascii_val <= 122:
swapped.append(chr(ascii_val 32))
else:
swapped.append(char)
return ''.join(swapped)
# 示例
print(swap_case3("Hello World!")) # 输出: hELLO wORLD!

说明:

  • 通过ord()获取ASCII码值
  • 大写字母+32转为小写,小写字母-32转为大写

方法4:列表推导式

def swap_case4(s):
return ''.join([c.upper() if c.islower() else c.lower() if c.isupper() else c for c in s])
# 示例
print(swap_case4("Hello World!")) # 输出: hELLO wORLD!

说明:单行代码实现,结合列表推导式和三目运算符。

方法5:异或运算

def swap_case5(s):
return ''.join(chr(ord(c) ^ 32) if c.isalpha() else c for c in s)
# 示例
print(swap_case5("Hello World!")) # 输出: hELLO wORLD!

说明:

  • 利用异或运算特性:大写字母 ^ 32 = 小写字母,反之亦然
  • 仅对字母字符生效,非字母字符保留原样

运行结果

hELLO wORLD!

进程已结束,退出代码为 0

相关文章

Python实现字符串小写转大写并写入文件

任务要求编写一个Python应用程序,实现以下功能:1.从键盘获取用户输入的字符串。2.将输入字符串里的所有小写字母转换为大写字母。3.把转换后的字符串输出并保存到名为“test”的磁盘文件中。任务分...

批量将文件名、格式后缀由大写字母转换为小写:Python

本文介绍基于Python语言,基于一个大文件夹,遍历其中的多个子文件夹,对于每一个子文件夹中的大量文件,批量将其文件的名称或后缀名中的字母由大写修改为小写的方法。 本文期望实现的需求为:现有一个...

解锁Python字符串处理的10个神技!让你的代码效率翻倍

#Python编程技巧# #字符串处理秘籍#一、字符串基础:编程世界的文字魔法字符串是编程中处理文本的核心数据类型。在Python中,它不仅是简单的字符序列,更是一个自带丰富方法的智能对象。理解字符串...

python入门-day8- 元组与集合

以下是为“Day 8: 元组与集合”设计的详细学习任务计划。这个任务旨在帮助初学者理解 Python 中元组(tuple)和集合(set)的特性及其应用,并通过实践掌握如何统计字符串中的不重复字符数。...

[oeasy]python038_ range函数_大小写字母的起止范围_start_stop

range函数_大小写字母的起止范围_start_stop回忆上次内容所有字符 都有序号就连 空格 也不例外空格序号32是 print函数中 sep参数的 默认值字符 在计算机中用数字序号 来 存储表...