点击上方“Python3X”,选择“置顶或者星标”
第一时间收到精彩推送!
Python Every Day, 第 17 天
问题:
任意给定一个字符串,要求:
将小写的字母转换成大写
将大写的字母转换成小写
将数字转换成9减去这个数的值
isdigit()
用于检测字符串是否由纯数字组成,如果只要包含一个非数字就返回False。a = '12315'print(a.isdigit()) # True# 包含字符ab = '12345a'print(b.isdigit()) # False# 包含符号%c = '123%15'print(c.isdigit()) # False
print(a.isdigit()) # True
# 包含字符a
b = '12345a'
print(b.isdigit()) # False
# 包含符号%
c = '123%15'
print(c.isdigit()) # False
检测字符串是否只有字母组成
a = 'abcd'print(a.isalpha()) # Trueb = 'abcd123'print(b.isalpha()) # Falsec = 'abc$d'print(c.isalpha()) # False
print(a.isalpha()) # True
b = 'abcd123'
print(b.isalpha()) # False
c = 'abc$d'
print(c.isalpha()) # False
swapcase()
a = 'aBcD%Fe'print(a.swapcase()) # AbCd%fE
print(a.swapcase()) # AbCd%fE
其他补充
# 将字母全都转换成大写print(a.upper()) # ABCDEFG# 将字母全都转换成小写print(a.lower()) # abcdefg# 判断是否是大写 Falseprint('aaa'.isupper())# 判断是否是小写 # Trueprint('bbb'.islower())
print(a.upper()) # ABCDEFG
# 将字母全都转换成小写
print(a.lower()) # abcdefg
# 判断是否是大写 False
print('aaa'.isupper())
# 判断是否是小写 # True
print('bbb'.islower())
知道了上面几个函数,这个题就比较容易解了
# 方法一def transform(string): new_str = '' for i in string: if i.isdigit(): new_str += str(9 - int(i)) else: new_str += i.swapcase() return new_str# 方法二def transform2(string): new_str = '' for i in string: if i.isdigit(): new_str += str(9 - int(i)) elif i.isupper(): new_str += i.lower() elif i.islower(): new_str += i.upper() else: new_str += i return new_strif __name__ == '__main__': string = 'ava1241@o3#1-1231;.,,^$d' print(transform(string)) # AVA8758@O6#8-8768;.,,^$D print(transform2(string)) # AVA8758@O6#8-8768;.,,^$D
def transform(string):
new_str = ''
for i in string:
if i.isdigit():
new_str += str(9 - int(i))
else:
new_str += i.swapcase()
return new_str
# 方法二
def transform2(string):
new_str = ''
for i in string:
if i.isdigit():
new_str += str(9 - int(i))
elif i.isupper():
new_str += i.lower()
elif i.islower():
new_str += i.upper()
else:
new_str += i
return new_str
if __name__ == '__main__':
string = 'ava1241@o3#1-1231;.,,^$d'
print(transform(string)) # AVA8758@O6#8-8768;.,,^$D
print(transform2(string)) # AVA8758@O6#8-8768;.,,^$D
补充: 方法一可以写的更pythonic一点,如下:
string = 'ava1241@o3#1-1231;.,,^$d'result = ''.join([str(9 - int(i)) if i.isdigit() else i.swapcase() for i in string])print(result) # AVA8758@O6#8-8768;.,,^$D
result = ''.join([str(9 - int(i)) if i.isdigit() else i.swapcase() for i in string])
print(result) # AVA8758@O6#8-8768;.,,^$D
往期Python Every Day
[每日一题]3、Python实现删除list中重复元素的几种方式
[每日一题]2、Python中的类的定义和装饰器@classmethod与@staticmethod
感谢您的阅读