|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
编写程序,要求使用ASCII码转换字符串大小写,对输入的字符参数进行大小写转换,即输入小写内容,输出大写;输入大写则输出小写内容;其他字符不变;
针对大小写的转换,可以考虑使用对应ASCII码进行切换,其中a-z为数字97-122,A-Z为数字65-90,大小写字母之间的编号相差32
思路:确认对应ASCII码是否在对应范围内,然后进行操作
知识点:类型转换
ord():将字符转化成整数值,参数是长度为1的字符串,简称字符。当参数为8比特的字符串时,返回该字节的值。例如,ord(‘a’)返回整形数值97。
chr():将整数(0-255)转换成一个字符,字符的ascii码等于参数中的整形数值。例如chr(97)返回字符’a’,该方法是ord()的反方法。
备注,函数swapcase()方法也可以用于对字符串的大小写字母进行转换。
import sys
​
msg="qingQIAO_HighSchool"
​
def my_function(i):
for apple in msg:
if 97 <= i <= 122: # 对小写字母数值判断
upper_num = i - 32 # 转换得到大写字母数值
print(chr(upper_num),end="") # 通过数值返回大写字母并打印
elif 65<= i <=90 : # 对大写字母数值判断,转换成小写字母
upper_num = i + 32
print(chr(upper_numer),end="")
else:
print(i,end="") # 其他字符不变直接打印
​
​
print("转换后的字符串为:",end="")
​
my_function(i)
本帖最后由 sfqxx 于 2023-5-30 21:03 编辑
首先,在代码中需要用到msg变量,但该变量并未在代码中定义,因此需要先将msg变量定义为字符串类型,例如:
- msg = "qingQIAO_HighSchool"
复制代码
然后,需要从输入的字符参数中提取并判断每个字符的ASCII码数值是否在小写字母或大写字母的范围内,再根据需要转换成相应的大小写字母。可以用for循环对每个字符进行遍历并操作。
具体代码实现如下:
- def my_function(msg):
- new_msg = ""
- for c in msg:
- # 对小写字母做处理
- if c >= 'a' and c <= 'z':
- new_msg += chr(ord(c) - 32)
- # 对大写字母做处理
- elif c >= 'A' and c <= 'Z':
- new_msg += chr(ord(c) + 32)
- # 其他字符不变
- else:
- new_msg += c
- return new_msg
- msg = "qingQIAO_HighSchool"
- new_msg = my_function(msg)
- print("转换后的字符串为:", new_msg)
复制代码
输出结果为:
转换后的字符串为: QINGqiao_hIGHSCHOOL
如果要使用Python内置的`swapcase()`方法来实现大小写转换,则只需一行代码实现:
- msg = "qingQIAO_HighSchool"
- new_msg = msg.swapcase()
- print("转换后的字符串为:", new_msg)
复制代码
输出结果为:
转换后的字符串为: QINGqiao_hIGHSCHOOL
求最佳答案
|
|