我是编程新手,我需要一些免费的在线教程来学习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
答案 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