我有一个程序,它接受4个数字输入,并将它们传递给一个用户定义的函数。第一个值成为列表中的第二个值,第四个值成为列表中的第三个值。该程序应该将输入输出为数字,中间有空格。
def swap_values(user_val1, user_val2, user_val3, user_val4):
newList = [user_val2, user_val1, user_val4, user_val3]
return print(f'{newList[0]} {newList[1]} {newList[2]} {newList[3]}')
if __name__ == '__main__':
val1 = int(input())
val2 = int(input())
val3 = int(input())
val4 = int(input())
print(swap_values(val1, val2, val3, val4))
虽然我确实得到了输入“8,3,4,2”的正确答案输出,但我也得到了“无”的权利,就像这样
3 8 2 4
None
我该怎么做才能解决这个问题?
3条答案
按热度按时间rqqzpn5f1#
这是因为函数swap_values首先打印值,然后返回打印函数None,这可以通过使用以下代码来修复:
1cklez4t2#
您有两个
print
语句。这条线
打印这四个数字,然后返回打印操作的返回值,但是在Python中print没有返回值,所以它是"None",然后这一行
打印该返回值。
你可以把
swap_values()
修改为只返回一个字符串,然后让调用者打印出来;或者你可以打印swap_values()
中的值,然后调用那个函数,而不需要在调用周围使用print语句,只是不要同时使用这两种方法。3okqufwl3#
打印 print() 的返回值None。
不要在swap_values函数中打印,而是返回交换后的值,然后打印。例如:
输出: