编写一个具有名为my_func
的函数的程序,其中包含三个参数a
,b
和c
。
第一个参数是必需的,后两个参数的默认值为'b was not entered'
和'c was not entered'
。
该函数必须打印每个参数的值。
在您的计划中,请致电my_func
三次。第一次,只为第一个参数提供一个值。
第二次,提供第一个和第二个参数的值。第三次,为所有三个参数提供值。
在您的程序中,打印功能本身。
输出应为:
test
b was not entered
c was not entered
test
test
c was not entered
test
test
test
<function my_func at 0x397588>
这是我到目前为止所得到的:
def my_func(a, b=False, c=False):
"""Prints out the values"""
for i in a:
print(i)
if not b:
print("b was not entered")
else:
for i in b:
print(i)
if not c:
print("C was not entered")
else:
for i in c:
print(i)
my_func(['test'])
my_func(['test'], ['test'])
my_func(['test'], ['test'], ['test'])
答案 0 :(得分:2)
我会尽力给你一些指示,让你自己找到正确的答案。
首先,为什么用字符串列表作为参数调用函数而不仅仅是字符串。只传递字符串会简化你的功能。
其次,当您为b
和c
参数指定默认值时,可以使用您想要的任何值,包括字符串。这将进一步简化您的功能。
答案 1 :(得分:1)
你似乎只缺少最后一部分:
在您的程序中,打印函数本身。
只需添加:
print(my_func)
你会得到完全像你问的输出。
此外,虽然您的代码现在生成输出,但您使用False
作为默认值,而不是询问的内容。您还使用每个参数的列表,问题并没有要求您这样做。您可以像这样定义您的函数:
def my_func(a, b="b was not entered", c="C was not entered"):
print(a)
print(b)
print(c)
并称之为:
my_func('test')
my_func('test', 'test')
my_func('test', 'test', 'test')
print(my_func)
这样更简单并产生相同的输出