python制作我自己的小写转换器

时间:2013-08-22 16:44:58

标签: python string for-loop iteration lowercase

我是编程新手,我需要一些免费的在线教程来学习Python。我正在构建自己的方法来将输入字符串转换为所有小写的情况。我不能使用string.lower()方法。在我到目前为止的代码中,我无法弄清楚如何将输入字符串分成可以输入我的字符转换器lowerChar(char)的字符。

string=input #input string


def lowerChar(char):              #function for converting characters into lowercase
   if ord(char) >= ord('A') and ord(char)<=ord('Z'):
      return chr(ord(char) + 32)
   else:
      return char

def lowerString(string):     #function for feeding characters of string into lowerChar
   result = ""
  for i in string:
     result = result + lowerChar(string[i])
     return result

5 个答案:

答案 0 :(得分:3)

你真的很亲密:

def lowerString(string):
  result = ""
  for i in string:
     # i is a character in the string
     result = result + lowerChar(i)
  # This shouldn't be under the for loop
  return result

字符串可以像列表一样进行迭代!

另外,请务必注意缩进级别,并且使用的空格数应保持一致。

答案 1 :(得分:1)

您只返回第一个字母,您必须在外部范围内return,尝试此操作,最好使用+=代替result = result + lowerChar(i)

def lowerString(string):     #function for feeding characters of string into lowerChar
  result = ""
  for i in string:
     result  += lowerChar(i) 
  return result

print lowerString("HELLO") #hello

答案 2 :(得分:1)

提示:您不需要使用ord()。 Python可以直接进行以下比较:

if char >= 'A' and char<='Z':

答案 3 :(得分:0)

我的解决方案:

string = input("Input one liner: ")

def lowerChar(char):
    if char >= 65 and char <= 90:
        char = chr(char + 32)
        return char
    else:
        char = chr(char)
        return char


def lowerString(string):
    result = ""
    for i in range(0, len(string)):
        result = result + lowerChar(ord(string[i]))
    return result

print(lowerString(string))

答案 4 :(得分:0)

尝试这样的事情:

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

def lowerString(string):
    result = ""
    x=0

    for i in string:
        while x < len(string):
           result = result + lowerChar(string[x])
           x+=1

        return result