前言
大概是最后一次参加蓝桥杯,Python组模拟题练习,仅作为个人总结,分享给有需要的人,如有错误,请纠正,万分感谢!
问题描述
编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
输出格式:输出经过转换后的字符串。
样例输入
AeDb
样例输出
aEdB
数据规模与约定
时间限制:1.0s 内存限制:256.0MB
解答
1. 代码:
误解1:
a=input().split()
for i in a:
if ord(i)<97:
i=i.lower()
else:
i=i.upper()
print("".join(a))
假设输入为 AdEc ,
input()进来以后是 AdEc
,a=input().split()
,a是 ['AeDb']
,并不能分开
误解2:
a=input()
b=" ".join(a).split()
for i in a:
if ord(i)<97:
i=i.lower()
else:
i=i.upper()
print("".join(a))
第3行开始的循环中,并没有将原列表的修改结果进行返回,只是临时的
正解:
a=input()
b=" ".join(a).split()
for i in range(len(b)):
if ord(b[i])<97:
b[i]=b[i].lower()
else:
b[i]=b[i].upper()
print("".join(b))
第2行先用空格将字符串分开,再分成列表
第3行开始的循环中,将列表进行修改
2. 重点知识:
- 没有空格分开的输入使用input().split()切分不管用,需要
" ".join(input()).split()
[注]:引号之间带空格 - 需要修改列表中的内容时,使用a[i]的方式