#python #function
#python #функция
Вопрос:
Позвольте мне просто начать с того, что я очень новичок в программировании, я почти уверен, что это похоже на то, как я в четвертый раз сижу и изучаю материал, так хорошо, я даже не уверен, что вопрос звучит правильно.
Итак, я смотрю учебные пособия для начинающих по Python от CS Dojo на YouTube, я на третьем видео, оно о функциях. Просматривая учебные пособия, я часто ставлю видео на паузу и пытаюсь немного поэкспериментировать, чтобы по-настоящему понять, с чем я работаю. Так что все прошло хорошо, когда я поиграл с числами. Как здесь:
def function(x):
return x 5
a = function(10)
print(a)
(Не уверен, хорошо ли я вставил код, извините)
Но потом я попытался что-то сделать со словами, чтобы посмотреть, сработает ли это:
def function(name):
return ("Hi ")
b = function(Oskar)
print(b)
И это не так, я получаю такую ошибку:
NameError: name 'Oskar' is not defined
Работают ли такие коды только с числами? Или я сделал что-то не так? Я хочу понять это, поэтому я хотел бы, чтобы кто-нибудь объяснил мне это, учитывая, что я новичок и не понимаю многих слов, которые используют здесь программисты.
Комментарии:
1. Нет, они также работают с текстом, но если вы пишете
function(Oskar)
, это не так, что вы передаете текстOskar
, а объект, на который ссылается ИМЯOskar
. Но вы не определилиOskar
раньше. Вот почему вы получаете ошибку. Если вы хотите передать текстOskar
, вы должны назвать его likefunction("Oskar")
.
Ответ №1:
Oskar
является переменной. 'Oskar'
и "Oskar"
являются строками (обратите внимание на кавычки).
Другими словами, будет работать любое из следующего:
b = function('Oskar')
b = function("Oskar")
my_name = 'Oskar'
b = function(my_name)
my_name = input('What is your name? ')
b = function(my_name)
(Наряду с бесконечным количеством других примеров, конечно.)
Ответ №2:
name = "oskar"
def function(name):
return ("Hi " name)
b = function(name)
print(b)
Oskar — это не строка, а неопределенная переменная.
Ответ №3:
Oskar без кавычек рассматривается как идентификатор, а не строка. Используйте «Oskar» или «Oskar»
Строка всегда должна быть заключена в двойную («») или одинарную («) кавычку
def function(name):
return ("Hi " name)
b = function("Oskar")
print(b)
Или используйте этот, в будущем он пригодится
def function(name):
return (f"Hi {name}")
b = function("Oskar")
print(b)
Ответ №4:
При вводе Osakar
интерпретатор python ожидает переменную, которая не определена в вашем случае.
Пожалуйста, обратите внимание, что Oskar
это отличается от 'Oscar'
. Первая — это переменная (которая должна быть определена первой). В то время как последнее является string
.
Даже если вы используете sting 'Oscar'
, вы не можете использовать его со своей функцией. Потому
что не работает между строкой и целым числом.