为什么在 Python 中会出现此错误?
Why do I get this error in Python?
我正在制作一个程序,如果用户输入文本,它会将任何大写字母转换为小写字母:
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。
而不是:
return print(char)
你应该简单地使用:
return char
您可能还想在 lowerString
函数的末尾添加一个 print(result)
,否则您将没有任何输出。
return print(char)
这将首先打印 char
的值(如 print(char)
)和 然后 尝试 return return 打印函数的值。但是由于 print 函数总是 returns None
——它只 打印 值,而不是 return——你的函数总是 return None
在尝试将 None
与字符串连接时导致错误。
要解决这个问题,只需不打印字符,而只打印 return 它:
return char
为什么不做 string_variable.lower()
或 'test string'.lower()
因为在 python 中一切都是对象,字符串对象有多个附加方法。
string = input("type").lower()
print (string)
# or
string = input("type")
string = string.lower()
print (string)
我正在制作一个程序,如果用户输入文本,它会将任何大写字母转换为小写字母:
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。
而不是:
return print(char)
你应该简单地使用:
return char
您可能还想在 lowerString
函数的末尾添加一个 print(result)
,否则您将没有任何输出。
return print(char)
这将首先打印 char
的值(如 print(char)
)和 然后 尝试 return return 打印函数的值。但是由于 print 函数总是 returns None
——它只 打印 值,而不是 return——你的函数总是 return None
在尝试将 None
与字符串连接时导致错误。
要解决这个问题,只需不打印字符,而只打印 return 它:
return char
为什么不做 string_variable.lower()
或 'test string'.lower()
因为在 python 中一切都是对象,字符串对象有多个附加方法。
string = input("type").lower()
print (string)
# or
string = input("type")
string = string.lower()
print (string)