将单个字符转换为小写

时间:2013-11-18 00:04:49

标签: python

说明: 第一步是编写一个函数lowerChar(char),它可以返回将单个字符char转换为小写的结果。它应该执行以下操作:

  

如果输入字符char是大写字母(在'A'和'Z'之间),   它应该返回字母的小写版本(在'a'和。之间)   'Z')。在所有其他情况下,它应该返回相同的char   输入

(为了完成第一步,您必须使用if语句,和运算符,并从课程中应用有关字符串的一些知识。)

我所拥有的只是 -

def lowerChar(char):

4 个答案:

答案 0 :(得分:5)

In [26]: 'A'.lower()
Out[26]: 'a'

In [27]: 'a'.lower()
Out[27]: 'a'

所以你要追求的是:

def lowerChar(char):
  return char.lower()

或者,你可以使用这样的ascii值:

def lowerChar(char):
  if 97 <= ord(char) <= 122: # lower case
    return char
  elif 65 <= ord(char) <= 90: # upper case
    return chr(ord(char)-32)
  else: # not a letter of the alphabet
    return char

答案 1 :(得分:2)

不要使用硬编码常量

def lowerChar(c):
    if 'A' <= c <= 'Z':
        return chr(ord(c) - ord('A') + ord('a'))
    else:
        return c

没有chrord

的另一种方式
from string import ascii_lowercase, ascii_uppercase
def lowerChar(c):
    if 'A' <= c <= 'Z':
        return ascii_lowercase[ascii_uppercase.index(c)]
    else:
        return c

答案 2 :(得分:0)

def lowerChar(char):
    if len(char) != 1 or not isinstance(char, basestring):
        raise TypeError
    if char >= 'A' and char <= 'Z':
        return char.lower()
    else:
        return char

第二行和第三行是可选的,只是确保传入的值实际上是单字符串,而不是多字符串。

答案 3 :(得分:0)

这是一个很好的简单方法:

import string

def lowerChar(char):
    if char in string.ascii_uppercase:
        return char.lower()
    else:
        return char

<强>解释 所以基本上,你要检查字符是否} ASCII-table的大写值 - 如果是,则返回char的小写版本。如果没有,您只需“按原样”返回char。