Могу ли я использовать текст при использовании функций? Или только числа?

#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 , вы должны назвать его like function("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' , вы не можете использовать его со своей функцией. Потому что не работает между строкой и целым числом.