我的程序应该顺时针返回用户输入的罗盘点
当我使用print测试我的函数时,它返回了一个false值,而它应该是true。
def turn_clockwise(x):
if x == 'N':
print('E')
elif x == 'E':
print('S')
elif x == 'S':
print('W')
elif x == 'W':
print('N')
else:
print('Input is not a compass point.')
user_input = input('Enter a compass point: ')
turn_clockwise(user_input)
print(turn_clockwise('N')=='E')
最后一个print函数测试答案是真还是假。虽然第一次调用函数返回'E',但测试结果为false。以下是我输入'N'后打印到终端的内容:
Enter a compass point: N
E
E
False
我也尝试用!=替换==,它返回预期的答案,这是真的。
输出甚至在返回布尔值之前打印出函数的答案。
您混淆了返回值和打印语句。
当您打印一个值时,它只是将它显示在屏幕上,而不是从函数中返回它。
如果你想在打印的同时返回它,你需要在你需要的地方添加一个return
语句。
布尔值为false的原因是在没有return语句的情况下,函数返回None
和None != 'E'
。
def turn_clockwise(x):
if x == 'N':
print('E')
return 'E'
elif x == 'E':
print('S')
return 'S'
elif x == 'S':
print('W')
return 'W'
elif x == 'W':
print('N')
return 'N'
else:
print('Input is not a compass point.')