如果大写,如何转换为小写字符串



我正在编写这个函数来检测两个字符串是否为字谜。我想把字符串转换成小写字符,以防其中一个字符是大写的,但是我写的似乎不能正常工作。

# function to check if two strings areanagram or not
def eh_anagrama(cad1, cad2):
if cad1.islower() == False:
cad1.lower()
if cad2.islower() == False:
cad2.lower()
if(sorted(cad1)== sorted(cad2)):
print("The strings are anagrams.")
else:
print("The strings aren't anagrams.")

您不需要检查它们是否较低,因为它们无论如何都会以小写进行比较:

def eh_anagrama(cad1, cad2):
if sorted(cad1.lower()) == sorted(cad2.lower()):
print("The strings are anagrams.")
else:
print("The strings aren't anagrams.")

调用cad1.lower()将此字符串转换为小写,但此值未使用,您可以尝试cad1 = cad1.lower()

编辑:而且,它更加"python化"。用if not cad1.islower()代替if cad1.islower() == False

只是无条件转换,并且重新分配小写字符串(str是不可变的,所以方法返回新字符串,它们不会改变调用它们的字符串):

def eh_anagrama(cad1, cad2):
cad1 = cad1.lower()  # Reassign to replace with lowercased string
cad2 = cad2.lower()  # Ditto
if sorted(cad1) == sorted(cad2):
print("The strings are anagrams.")
else:
print("The strings aren't anagrams.")

次要旁注:为了更正确地处理非英语字母,我建议使用.casefold()而不是.lower();在其他语言中,这可以产生有意义的差异。

我做了一些改变。我没有直接写cad1.lower()cad2.lower(),而是将它们赋值给对应值的变量。

cad1 = cad1.lower()cad2 = cad2.lower()

# function to check if two strings areanagram or not
def eh_anagrama(cad1, cad2):
cad1 = cad1.lower() ; cad2 = cad2.lower()
if sorted(cad1) == sorted(cad2):
print("The strings are anagrams.")
else:
print("The strings aren't anagrams.")

最新更新