2011-02-03 5 views
-4

Напишите программу, которая имеет функцию с именем my_func с тремя параметрами, a, b и c.Распечатайте функцию python 3

Первый параметр необходим, а для вторых двух параметров установлены значения по умолчанию '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']) 
+3

Код не предусмотрен. Также вы забыли упомянуть, почему вы разместили это здесь. –

+1

Вместо того, чтобы давать нам домашнее задание, вы должны задать конкретный вопрос. Что вам нужно знать, чтобы закончить это задание? – senderle

ответ

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) 

Это намного проще и производит тот же самый вывод

2

Я попытаюсь дать вам некоторые указатели чтобы найти правильный ответ самостоятельно.

Во-первых, почему вы вызываете свою функцию со списком строки в качестве параметра, а не только для строки. Передача только строки упростит вашу функцию.

Во-вторых, когда вы указываете значение по умолчанию для аргументов b и c, вы можете использовать любое значение, которое вы хотите, включая строки. Это упростит вашу функцию.

Смежные вопросы