Функция Python не запускается в командной строке - PullRequest
0 голосов
/ 06 января 2019

У меня проблемы с выполнением Python в терминале.

Мое имя файла ex18.py, и я использую Python 3.7.

Чтобы запустить мою функцию, я пишу следующее на терминале:

$ python3.7 ex18.py

Вот так выглядит мой код:

def print_two(*args):
    arg1, arg2 = args
    print(f"arg1: {arg1}, arg2: {arg2}")

def print_two_again(arg1, arg2):
    print(f"arg1: {arg1}, arg2: {arg2}")

def print_one(arg1):
    print(f"arg1: {arg1}")

def print_none():
    print("I got nothing.")

    print_two("Zed", "Shaw")
    print_two_again("Zed","Shaw")
    print_one("First!")
    print_none()

Я ожидаю увидеть следующее при запуске на терминале:

arg1: Zed, arg2: Shaw
arg1: Zed, arg2: Shaw
arg1: First!
I got nothing.

Ответы [ 2 ]

0 голосов
/ 06 января 2019

В python вы можете определять функции, которые представляют собой фрагменты кода после их вызова. Последние четыре строки, кажется, вызывают функции, определенные ранее, но в настоящее время они имеют отступ, что означает, что он будет работать как часть отступа блока кода (поэтому эти строки являются частью функции print_none).

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

def print_two(*args):
    arg1, arg2 = args
    print(f"arg1: {arg1}, arg2: {arg2}")

def print_two_again(arg1, arg2):
    print(f"arg1: {arg1}, arg2: {arg2}")

def print_one(arg1):
    print(f"arg1: {arg1}")

def print_none():
    print("I got nothing.")

print_two("Zed", "Shaw")
print_two_again("Zed","Shaw")
print_one("First!")
print_none()
0 голосов
/ 06 января 2019

Последние четыре строки имеют отступ, поэтому они принадлежат тому же блоку, что и строка print("I got nothing."), т.е. они находятся внутри print_none() функции.

Напомню, что отступ в python является частью синтаксиса, обозначая блок кода (но пустая строка - просто пустая строка).

Чтобы ваш код работал, просто удалите эти строки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...