将单个字符转换为小写

2024-04-25 23:28:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

if the input character char is a capital letter (between 'A' and 'Z'), it should return the lower-case version of the letter (between 'a' and 'z'). In all other cases, it should return the same char which was input.

(要执行第一步,必须使用if语句、and运算符,并应用有关字符串的课程中的一些知识。)

我只有-

def lowerChar(char):

Tags: andthe函数inputreturnifitbetween
3条回答
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

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

最好不要使用硬编码常量

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
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

相关问题 更多 >