如何在 python 中反转字符串中的大写锁定?
How to reverse caps lock in a string in python?
我有一个字符串,可以用大写锁定来写,也可以不用。 “With caps lock”表示它要么像 tHIS,要么像 THIS。使用“isupper()”函数很容易检测到第二种情况,但我无法找到可靠地找到第一种情况的方法。对于长度为 1 的字符串,我使用“islower()”来检测它们是否应该大写,所以这应该不是问题
我使用的代码
import re
inp = input()
trutable = ""
for i in inp:
if i.isupper():
trutable += "1"
if i.islower():
trutable += "0"
pattern = re.compile(r'^01')
answ = re.match(pattern, trutable)
if inp.isupper() or answ != None or (len(inp) == 1 and inp.islower()):
inp = inp.capitalize()
print(inp)
您可以采用这种方法:
s = "hdCdjdC"
print("".join([x.upper() if x.islower() else x.lower() for x in s]))
输出
HDcDJDc
对于文本字符替换 python 字符串有 str.maketrans and str.translate 方法:
from string import ascii_lowercase as ascii_up, ascii_uppercase as ascii_low
def reverseCase(text):
m = str.maketrans(ascii_low + ascii_up, ascii_up + ascii_low)
return text.translate(m)
for w in ("tata", "TATA", "TaTa", "42"):
print(reverseCase(w))
输出:
TATA
tata
tAtA
42
检测事物
[...] either is like 'tHIS'
[...]
您可以使用:
def isWordStartingLowerAndContinuingUpperCased(word):
"""Check if words starts with lower case and continues upper cased."""
return word[0].islower() and word[1:].isupper()
for w in ("tHIS", "This", "THIS"):
print(w, ":", isWordStartingLowerAndContinuingUpperCased(w))
得到
tHIS : True
This : False
THIS : False
规范化文本时注意误报 - 有大量单词属于全大写且不应更改 - 缩写:
NBL、美国、MIB、CIA、FBI、NSA、MI6、NASA、DARPA 等
你要不要试试:
s = "hELLO wORLD!"
print(s.swapcase())
输出:
Hello World!
我有一个字符串,可以用大写锁定来写,也可以不用。 “With caps lock”表示它要么像 tHIS,要么像 THIS。使用“isupper()”函数很容易检测到第二种情况,但我无法找到可靠地找到第一种情况的方法。对于长度为 1 的字符串,我使用“islower()”来检测它们是否应该大写,所以这应该不是问题
我使用的代码
import re
inp = input()
trutable = ""
for i in inp:
if i.isupper():
trutable += "1"
if i.islower():
trutable += "0"
pattern = re.compile(r'^01')
answ = re.match(pattern, trutable)
if inp.isupper() or answ != None or (len(inp) == 1 and inp.islower()):
inp = inp.capitalize()
print(inp)
您可以采用这种方法:
s = "hdCdjdC"
print("".join([x.upper() if x.islower() else x.lower() for x in s]))
输出
HDcDJDc
对于文本字符替换 python 字符串有 str.maketrans and str.translate 方法:
from string import ascii_lowercase as ascii_up, ascii_uppercase as ascii_low
def reverseCase(text):
m = str.maketrans(ascii_low + ascii_up, ascii_up + ascii_low)
return text.translate(m)
for w in ("tata", "TATA", "TaTa", "42"):
print(reverseCase(w))
输出:
TATA
tata
tAtA
42
检测事物
[...] either is like
'tHIS'
[...]
您可以使用:
def isWordStartingLowerAndContinuingUpperCased(word):
"""Check if words starts with lower case and continues upper cased."""
return word[0].islower() and word[1:].isupper()
for w in ("tHIS", "This", "THIS"):
print(w, ":", isWordStartingLowerAndContinuingUpperCased(w))
得到
tHIS : True
This : False
THIS : False
规范化文本时注意误报 - 有大量单词属于全大写且不应更改 - 缩写:
NBL、美国、MIB、CIA、FBI、NSA、MI6、NASA、DARPA 等
你要不要试试:
s = "hELLO wORLD!"
print(s.swapcase())
输出:
Hello World!