определить функцию со строками в качестве параметра - PullRequest
0 голосов
/ 17 мая 2018

почему, когда мы определяем функцию со строками в качестве параметра, нам не нужны кавычки, а когда мы используем ее, нам нужны кавычки? Спасибо!

например,

def shout(word):
    shout_word = word + '!!!'

(здесь у нас нет кавычек для слова)

shout_word('abd')

но здесь нам нужно '' для абд ..

Я уже просматриваю некоторые материалы в Интернете, но, вероятно, мой вопрос слишком подробный или слишком простой, так что, похоже, никто не задавал его раньше. Спасибо за помощь!! для меня важно выучить питон!

Ответы [ 5 ]

0 голосов
/ 17 мая 2018

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

Здесь у вас есть метод, который должен взять строку и обозначить ее с помощью переменной word . Мы хотим, чтобы этот метод работал для любой строки, которую мы даем методу shout_word () , поэтому мы обобщаем это имя переменной.

При каждом вызове метода, например при выполнении shout_word ("abc") , "abc" находится в кавычках, потому что мы передаем значение в наш параметр word,

Вот еще несколько примечаний к определениям методов в Python!

0 голосов
/ 17 мая 2018

Это потому, что параметры функции также являются переменными.Если вы заключили строковый параметр для функции в кавычки, например, "word", то это больше не параметр.

0 голосов
/ 17 мая 2018

Маркер «слово» объявляет параметр функции крика. На данный момент не ясно, является ли это строкой или нет - это просто имя переменной. Его тип будет проверен в точке, где ваш код пытается добавить '!!!' к этому. '!!! является строковым литералом, и интерпретатор проверит, поддерживает ли тип времени слова «word» добавление к нему строк.

При изучении любого языка программирования важно понимать разницу между именами переменных и литералами переменных.

0 голосов
/ 17 мая 2018

Word в первом случае - это не строка, а переменная с именем «word». Во втором случае «abd» является строковым литералом

0 голосов
/ 17 мая 2018

Поскольку слово не определено явно как строка в функции, это просто переменная. Передача 'abc' в функцию означает, что слову присваивается значение 'abc'.

...