关于如何解决此问题的问题(更改字符)

嗨,大家好,
我是一个初学者,我想编写一个Python脚本,它将改变字符串为低,如果字符串是高,如果字符串是高。
我一直试着这样写(可能看起来很可怕)

选择 | 换行 | 行号
  1. import re
  2.  
  3. def changeCharacters(stringToChange):
  4.  
  5.     string = ''.join(stringToChange).split(' ')
  6.  
  7.     regex_uppers = re.compile('[A-Z]$')
  8.     regex_lowers = re.compile('[a-z]$')
  9.     result = []
  10.  
  11.     for word in string:
  12.         for letter in word:
  13.             if re.search(regex_uppers, letter) != None:
  14.                 letter.lower()
  15.                 result.append(letter)
  16.             elif re.search(regex_lowers, letter) != None:
  17.                 letter.upper()
  18.                 result.append(letter)
  19.     print(result)
  20.  
  21.  
  22.  
  23. def main():
  24.     changeCharacters('My name is benjamin and i Loveee someone')
  25.  
  26. if __name__ == '__main__':
  27.     main()
  28.  

但当我运行这个程序时,我得到了列表中附加的所有字母,但它没有转换任何内容。所以我尝试了如下所示的for循环:

选择 | 换行 | 行号
  1.     for word in string:
  2.         for letter in word:
  3.             if letter == letter.isupper():
  4.                 result.append(letter.lower())
  5.             elif letter == letter.islower():
  6.                 result.append(letter.upper())
  7.     print(result)
  8.  

但后来我得到了一张空名单。有没有人能给我一些提示,告诉我这里遗漏了什么?只要小费!
PS:对于英国人,我很抱歉。
提前谢谢!

# 回答1


关于最后一段代码,您必须在for()循环之前定义列表,才能在for循环之外看到它。我还建议您打印单词和字母,因为我认为它们不包含您期望的内容(即使代码可以工作)。

选择 | 换行 | 行号
  1.     result = []
  2.     for word in string_to_test:  ## "string" is a reserved word in Python
  3.         print "testing word", word
  4.         for letter in word:
  5.             print "     ", letter
  6.             if letter.isupper():
  7.                 letter = letter.lower()
  8.             elif letter.islower():
  9.                 letter = letter.upper()
  10.             result.append(letter)
  11.     print(result) 
# 回答2


对Ephexeve执行以下操作:
方法的作用是:返回一个布尔值。方法的作用是:返回转换成大写字母的字符串的副本。
Http://www.tutorialspoint.com/python/string_isupper.htm
# 回答3


我知道,不管怎么说,谢谢你们!

标签: python

添加新评论