Syntaxerror return outside function python как исправить
Перейти к содержимому

Syntaxerror return outside function python как исправить

  • автор:

Ошибка SyntaxError: ‘return’ outside function

Добрый день. Подскажите пожалуйста, как исправить ошибки?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
def calculate_call_cost(call_cost, operator_from, operator_to): # Создаем словарь с тарифами для разных операторов tariff_rates = { "МТС": 1.5, "Билайн": 1.2, "Мегафон": 1.8, "Теле2": 1.0 } # Проверяем, что выбранные операторы есть в словаре if operator_from not in tariff_rates: print("Ошибка! Неправильно указан оператор звонящего.") return None if operator_to not in tariff_rates: print("Ошибка! Неправильно указан оператор принимающего звонок.") return None # Проверяем, что стоимость разговора положительна if call_cost  0: print("Ошибка! Стоимость разговора должна быть положительной.") return None # Рассчитываем стоимость разговора rate_from = tariff_rates[operator_from] rate_to = tariff_rates[operator_to] total_cost = call_cost * rate_from / rate_to return total_cost # Вводим данные от пользователя call_cost = float(input("Введите стоимость разговора: ")) operator_from = input("Введите оператор звонящего (МТС, Билайн, Мегафон, Теле2): ").strip().capitalize() operator_to = input("Введите оператор принимающего звонок (МТС, Билайн, Мегафон, Теле2): ").strip().capitalize() # Вычисляем и выводим стоимость разговора result = calculate_call_cost(call_cost, operator_from, operator_to) if result is not None: print(f"Стоимость разговора: ")

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Ошибка компиляции return SyntaxError: invalid syntax
программа ругается на код "%X"%$(prev & 0xFFFFFFFF) в программе на 14 строчке #.

SyntaxError: ‘await’ outside function
Здравствуйте. Создаю бота для дискорда на свой сервер. Через документацию к discord.py, я сделал.

Ошибка Return value of function ‘rec’ might be undefined
Программа работает, выполняет все правильно, но пишет ошибки: Value assigned to ‘sr’ never used.

Ошибка: Return value of function ‘nez’ might be undefined
помогите исправить. procedure TForm1.btn1Click(Sender: TObject); function nez(n:real) :real ;.

Ошибка: ‘sleep’: no function return type, using ‘int’
Пользуюсь DosBox 0.74-QC(поменять не могу,нужно на нем) ,так вот,столкнулся с такой проблемой,что.

Регистрация: 11.03.2014
Сообщений: 489
Вот такие ошибки
1098 / 266 / 110
Регистрация: 16.02.2021
Сообщений: 508

ЦитатаСообщение от Fenlou Посмотреть сообщение

Вот такие ошибки
нужны отступы перед условиями if в функции
Регистрация: 11.03.2014
Сообщений: 489

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
def calculate_call_cost(call_cost, operator_from, operator_to): # Создаем словарь с тарифами для разных операторов tariff_rates = { "МТС": 1.5, "Билайн": 1.2, "Мегафон": 1.8, "Теле2": 1.0 } # Проверяем, что выбранные операторы есть в словаре if operator_from not in tariff_rates: print("Ошибка! Неправильно указан оператор звонящего.") return None if operator_to not in tariff_rates: print("Ошибка! Неправильно указан оператор принимающего звонок.") return None # Проверяем, что стоимость разговора положительна if call_cost  0: print("Ошибка! Стоимость разговора должна быть положительной.") return None # Рассчитываем стоимость разговора rate_from = tariff_rates[operator_from] rate_to = tariff_rates[operator_to] total_cost = call_cost * rate_from / rate_to return total_cost # Вводим данные от пользователя call_cost = float(input("Введите стоимость разговора: ")) operator_from = input("Введите оператор звонящего (МТС, Билайн, Мегафон, Теле2): ").strip().capitalize() operator_to = input("Введите оператор принимающего звонок (МТС, Билайн, Мегафон, Теле2): ").strip().capitalize() # Вычисляем и выводим стоимость разговора result = calculate_call_cost(call_cost, operator_from, operator_to) if result is not None: print(f"Стоимость разговора: ")

теперь так выдает:
Изображения
Регистрация: 11.03.2014
Сообщений: 489
Регистрация: 11.03.2014
Сообщений: 489

ЦитатаСообщение от TimutGin Посмотреть сообщение

нужны отступы перед условиями if в функции
очень надеюсь на Вашу помощь
42 / 34 / 10
Регистрация: 05.08.2021
Сообщений: 130
Вот отсюда ==>

operator_from = input("Введите оператор звонящего (МТС, Билайн, Мегафон, Теле2): ").strip().capitalize() operator_to = input("Введите оператор принимающего звонок (МТС, Билайн, Мегафон, Теле2): ").strip().capitalize()

.capitalize() нужно убрать. Иначе будет считаться что МТС в словаре нет

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
def calculate_call_cost(call_cost, operator_from, operator_to): # Создаем словарь с тарифами для разных операторов tariff_rates = { "МТС": 1.5, "Билайн": 1.2, "Мегафон": 1.8, "Теле2": 1.0 } # Проверяем, что выбранные операторы есть в словаре if operator_from not in tariff_rates: print("Ошибка! Неправильно указан оператор звонящего.") return None if operator_to not in tariff_rates: print("Ошибка! Неправильно указан оператор принимающего звонок.") return None # Проверяем, что стоимость разговора положительна if call_cost  0: print("Ошибка! Стоимость разговора должна быть положительной.") return None # Рассчитываем стоимость разговора rate_from = tariff_rates[operator_from] rate_to = tariff_rates[operator_to] total_cost = call_cost * rate_from / rate_to return total_cost # Вводим данные от пользователя call_cost = float(input("Введите стоимость разговора: ")) operator_from = input("Введите оператор звонящего (МТС, Билайн, Мегафон, Теле2): ").strip() operator_to = input("Введите оператор принимающего звонок (МТС, Билайн, Мегафон, Теле2): ").strip() # Вычисляем и выводим стоимость разговора result = calculate_call_cost(call_cost, operator_from, operator_to) if result is not None: print(f"Стоимость разговора: ")

Вопрос №70608 от пользователя Tanya Ivanova в уроке «Параметры функций», курс «Основы Python»

не могу разобраться с ошибкой, пишет что функция отсутсвует.

Вывод с описанием ошибки:

означает, что ключевое слово return должно располагаться в теле функции. Проверьте отступы.

не понимаю зачем подсчитывать число знаков, если мы не выводим это значение?

Этого и не нужно делать. Достаточно просто обрезать строку до указанной длины.

В чем ошибка (пишет что return), но не могу понять где?

Vindicar

Ну тебе же английским по белому написано: ‘return’ outside function
Оператор return имеет смысл только в теле функции, а у тебя никакого объявления функции нет.

Ответ написан более года назад

Нравится 3 2 комментария

Denis @denislysenko Автор вопроса

так а что мне можно сделать, чтобы сделать return именно в этом месте?

if i in my_dict: my_dict[i] += 1 return True

Сергей Горностаев @sergey-gornostaev Куратор тега Python

denislysenko, ничего не сделать, это невозможно.

How to fix “SyntaxError: ‘return’ outside function” in Python

Python raises the error “SyntaxError: ‘return’ outside function” once it encounters a return statement outside a function.

Here’s what the error looks like:

 File /dwd/sandbox/test.py, line 4 return True ^^^^^^^^^^^ SyntaxError: 'return' outside function 

Based on Python’s syntax & semantics, a return statement may only be used in a function to return a value to the caller.

However, if — for some reason — a return statement isn’t nested in a function, Python’s interpreter raises the «SyntaxError: ‘return’ outside function» error.

You might like:

A pixelated red heart illustration

How much do web developers make in the US?

Using the return statement outside a function isn’t something you’d do on purpose, though; This error usually happens when the indentation-level of a return statement isn’t consistent with the rest of the function.

Additionally, it can occur when you accidentally use a return statement to break out of a loop (rather than using the break statement)

Woman thinking

Psssst! Do you want to learn web development in 2023?

  • How to become a web developer when you have no degree
  • How to learn to code without a technical background
  • How much do web developers make in the US?

�� Debugging Jam

Calling all coders in need of a rhythm boost! Tune in to our 24/7 Lofi Coding Radio on YouTube, and let’s code to the beat – subscribe for the ultimate coding groove!» Let the bug-hunting begin! ������

24/7 lofi music radio banner, showing a young man working at his computer on a rainy autmn night with hot drink on the desk.

How to fix the «‘return’ outside function» error?

Python return outside function error happens under various scenarios including:

  1. Inconsistent indentation
  2. Using the return statement to break out of a loop

Let’s explore each scenario with some examples.

Inconsistent indentation: A common cause of this syntax error is an inconsistent indentation, meaning Python doesn’t consider the return statement a part of a function because its indentation level is different.

You might like:

A pixelated red heart illustration

How to learn to code without a technical background

In the following example, we have a function that accepts a number and checks if it’s an even number:

 # �� SyntaxError: 'return' outside function def isEven(value): remainder = value % 2 # if the remainder of the division is zero, it's even return remainder == 0 

As you probably noticed, we hadn’t indented the return statement relative to the isEven() function.

To fix it, we correct the indentation like so:

 # ✅ Correct def isEven(value): remainder = value % 2 # if the remainder of the division is zero, it's even return remainder == 0 

Let’s see another example:

 # �� SyntaxError: 'return' outside function def check_age(age): print('checking the rating. ') # if the user is under 12, don't play the movie if (age  12): print('The movie can\'t be played!') return 

In the above code, the if block has the same indentation level as the top-level code. As a result, the return statement is considered outside the function.

You might like:

A pixelated red heart illustration

How to become a web developer when you have no degree

To fix the error, we bring the whole if block to the same indentation level as the function.

 # ✅ Correct def check_age(age): print('checking the rating. ') # if the user is under 12, don't play the movie if (age  12): print('The movie can\'t be played!') return print('Playing the movie') check_age(25) # output: Playing the movie 

Using the return statement to break out of a loop: Another reason for this error is using a return statement to stop a for loop located in the top-level code.

The following code is supposed to print the first fifteen items of a range object:

 # �� SyntaxError: 'return' outside function items = range(1, 100) # print the first 15 items for i in items: if i > 15: return print(i) 

However, based on Python’s semantics, the return statement isn’t used to break out of functions — You should use the break statement instead:

 # ✅ Correct items = range(1, 100) # print the first 15 items for i in items: if i > 15: break print(i) 

In conclusion, always make sure the return statement is indented relative to its surrounding function. Or if you’re using it to break out of a loop, replace it with a break statement.

Alright, I think it does it. I hope this quick guide helped you solve your problem.

Thanks for reading.

Reza Lavarian Hey �� I’m a software engineer, an author, and an open-source contributor. I enjoy helping people (including myself) decode the complex side of technology. I share my findings on Twitter: @rezalavarian

If you read this far, you can tweet to the author to show them you care.

❤️ You might be also interested in:

  • How to fix «SyntaxError: ‘break’ outside loop» in Python
  • How to fix «TabError: inconsistent use of tabs and spaces in indentation» in Python
  • How to fix «Unindent does not match any outer indentation level» in Python
  • How to learn any programming language in a short time

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *