首先,我只是一个初学者,所以请原谅我。
我有一个问题要问:"定义一个称为avg的函数。它要求用户输入三个数字并打印其平均值。"
然后是另一个问题,询问"定义一个称为avg4的函数。它要求用户输入四个数字并返回四个数字的平均值"
我只想知道这是否是一个棘手的问题? 因为根据我的理解,"打印"会在控制台中打印输出,而"返回"是功能的一部分,并且实际上在控制台中没有任何输出。
这是我第一个问题的代码,第二个问题有什么区别? (除了四个数字,而不是三个)
def avg(a, b, c):
sum = (a+b+c)/3
return sum
a1 = avg(float(input("First number:")), float(input("Second number:")), float(input("Third number:")))
在编写作业时,为了避免使用相同的单词,通常互换使用两个单词。 从上下文来看,鉴于您提到的没有功能性上下文,因此"返回"与"打印"相同。 同样,您应该编辑问题,因为您的代码编写不正确。
我不知道这是一个把戏,一个措辞不佳的问题,还是作者准确地描述了需要什么……但您应该坚持使用字面描述并按要求去做。 avg应该打印平均值并返回None,而avg4应该返回平均值。如果以后有任何争议("不要按照我说的去做,不要做我想做的事"),则可以正确地声称您做了被要求的事情。
在高风险的工作环境中,您会回过头来得到澄清,因此与给您分配任务的人交谈也是合理的。
def avg():
"""Ask the user for three numbers and print the average"""
numbers = []
for i in range(1, 4):
numbers.append(float(input('Number {}: '.format(i))))
print('Average', sum(numbers)/3)
def avg4():
"""Ask the user for 4 numbers and return the average"""
numbers = []
for i in range(1, 5):
numbers.append(float(input('Number {}: '.format(i))))
return sum(numbers)/4)
任何函数a返回一个值-然后可以将其分配给名称y或传递给另一个函数b,例如y = a(x)或z = b(a(x))。
在函数定义中,可以有任意数量的return语句:调用该函数时,将执行这些语句,直到遇到任何return something语句为止,然后才返回对something的引用;和以下任何语句将被忽略。
实际上,如果没有显式键入return语句,则None将在函数末尾隐式返回。
print语句不会对此产生任何干扰。它只是打印您所说的内容,然后代码继续执行。
打印的值不必是从函数返回的值。那是很大的不同。
好的,谢谢,因此,如果我要求我print一条语句,他们想要在屏幕上显示一些输出,但是如果他们要求我return一条语句,他们只是想让我定义一个函数,但没有任何输出屏幕?
是的,我在结尾处输入了print(a1),但是有人编辑了我的问题并出于某种原因将其取消。
在第一种情况下,您的函数可以不返回就打印(或者,正如我所说,它将隐式返回None),或者不打印就返回。
@timgeb-您编辑了很多内容,但编写得不好:但是我故意这样写,有一点您编辑有误;)...:您没有得到返回的something值,而是一个指针(是) ,这会有所不同,如果将较高范围的可变变量传递给该函数然后返回,则更改结果将对原始源产生影响。我错了吗?
@Ilja,您是对的,"对某事的引用"会更精确。
啊,谢谢,我是对的:)-嗯,这就是为什么我最初只写something的原因,以使其听起来不那么复杂。
因此,如果我提交了此信息,是吗? def avg(a, b, c): sum = (a+b+c)3 print(sum) a1 = avg(float(input("First number:")), float(input("Second number:")), float(input("Third number:")))
和def avg4(a, b, c, d): sum = (a+b+c+d)4 return sum a1 = avg4(float(input("First number:")), float(input("Second number:")), float(input("Third number:")), float(input("Fourth number:")))
对不起,这一切都很混乱,但我不知道该如何改变
嗯,这是两个函数,第一个函数打印,第二个函数返回传递的参数的平均值。但确切地说,不是用户函数提示用户输入数字:您在函数外部进行操作并将其传递给avg()。与此相反,在tdelaney的解决方案中,提示位于函数内部。
差异可能很细微,但是如果您将这些单词扎根,则将是一个根本的差异。
返回通常与一个函数相关联(尽管不一定!)。函数可能会返回一个值,特别是如果您以经典的类比来考虑函数,该函数接受某物并吐出产品。因此,基本上,您会说,当x是函数或某些类似结构时,x返回某些内容。
打印的含义更为粗略,通常,它只是在屏幕上显示某些内容。您可以打印某些内容而不将其作为函数的返回值,或者可以完全在函数之外进行打印。这里的想法是,可以将打印视为特定类型的退货,而不是同义词。
了解有关退货和打印的更多信息