为什么在Python中会出现此错误?
我正在制作一个程序,如果用户输入文本,它会将任何大写转换为小写:为什么在Python中会出现此错误?,python,python-3.x,Python,Python 3.x,我正在制作一个程序,如果用户输入文本,它会将任何大写转换为小写: 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
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)
def lowerChar(字符):
如果ord(char)>=65且ord(char)则问题在于您正在返回print
函数的结果,该函数为None
而不是:
return print(char)
您应该简单地使用:
return char
您可能还想在下字符串
函数的末尾添加一个打印(结果)
,否则将不会有任何输出
return print(char)
这将首先打印char
(如print(char)
)的值,然后尝试返回打印函数的返回值。但由于print函数始终返回None
——它只打印值,不返回值。因此,当尝试将None
与字符串连接时,函数将始终返回None
,从而导致错误
要解决此问题,只需不打印字符,而是返回:
return char
为什么不使用string\u variable.lower()
或“测试字符串”。lower()
因为在python中,所有东西都是一个对象,所以字符串对象有多个附加的方法
string = input("type").lower()
print (string)
# or
string = input("type")
string = string.lower()
print (string)
这个问题是关于实现的,属于(实现问题,例如代码修复(改为询问堆栈溢出))
string = input("type").lower()
print (string)
# or
string = input("type")
string = string.lower()
print (string)