说明: 第一步是编写一个函数lowerChar(char),它可以返回将单个字符char转换为小写的结果。它应该执行以下操作:
如果输入字符char是大写字母(在'A'和'Z'之间), 它应该返回字母的小写版本(在'a'和。之间) 'Z')。在所有其他情况下,它应该返回相同的char 输入
(为了完成第一步,您必须使用if语句,和运算符,并从课程中应用有关字符串的一些知识。)
我所拥有的只是 -
def lowerChar(char):
答案 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
没有chr
和ord
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
<强>解释强> 所以基本上,你要检查字符是否3>} ASCII-table的大写值 - 如果是,则返回char的小写版本。如果没有,您只需“按原样”返回char。