我正在制作一个程序,如果用户输入文本,它会将任何大写字母转换成小写:
def lowerChar(char):
if ord(char) >= 65 and ord(char) <= 90:
char = int(ord(char)) + 32
char = (chr(char))
return print(char)
else:
return print(char)
def lowerString(string):
x = len(string)
for i in range(x):
char = string[0 + i]
lowerChar(char)
result = ""
result = result + lowerChar(string[i])
string = input("type")
lowerString(string)
错误是:
Traceback (most recent call last):
File "C:\Python34\njn.py", line 24, in <module>
lowerString(string)
File "C:\Python34\njn.py", line 19, in lowerString
result = result + lowerChar(string[i])
TypeError: Can't convert 'NoneType' object to str implicitly
任何帮助都将不胜感激。你知道吗
问题是返回的是
print
函数的结果,它是None。你知道吗而不是:
您应该简单地使用:
您可能也希望在
lowerString
函数的末尾添加一个print(result)
,否则将没有任何输出。你知道吗为什么不做
string_variable.lower()
或'test string'.lower()
因为在python中所有的东西都是一个对象,string对象有多个附加的方法。你知道吗这将首先打印
char
(如print(char)
)的值,然后尝试返回print函数的返回值。但是由于print函数总是返回None
—它只打印值,而不返回它—您的函数总是返回None
,从而在尝试用字符串连接None
时导致错误。你知道吗要解决此问题,只需不打印字符,而是返回:
相关问题 更多 >
编程相关推荐