Outside loop python что это
Перейти к содержимому

Outside loop python что это

  • автор:

SyntaxError: ‘break’ outside loop

Мне нужно создать Меню утилиты, чтобы при вводе 9 у меня открывалось второе меню, которое также запускалось заново при выборе какой либо функции, а не вылетало, но выдаёт ошибку D:>python 4ist1k.py File «D:\4ist1k.py», line 69 break ^ SyntaxError: ‘break’ outside loop Вот сам код:

clear = input("Выберите пункт: ") #-Начало-функций-очистки if clear == "1": print('[!] Очистка файла. ') elif clear == "2": print(wrn, "Очистка истории") elif clear == "0": break else: print("Вы ввели неправильное значение. ") 

Здесь без функций, чтобы было кратко
Отслеживать
задан 2 дек 2020 в 17:17
1 1 1 серебряный знак 3 3 бронзовых знака

break можно использовать только внутри цикла. Что должно происходить если clear==»0″ ? Зачем вы там используете break ?

2 дек 2020 в 17:20
если это функция — то вместо break нужен return
2 дек 2020 в 17:23
Использую break для того, чтобы выйти из программы
2 дек 2020 в 17:25
чел, откуда ты взял, что break выходит из программы.
2 дек 2020 в 17:26
Я всего лишь учусь, так что извиняюсь
2 дек 2020 в 17:47

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

break можно использовать только в цикле для досрочного прерывания цикла.

Чтобы прекратить выполнение условного оператора, надо обернуть его в функцию

user_clear = input("Выберите пункт: ") def check_user_input(clear): if clear == "1": print('[!] Очистка файла. ') elif clear == "2": print(wrn, "Очистка истории") elif clear == "0": return # завершает функцию else: print("Вы ввели неправильное значение. ") check_user_input(user_clear) 

Чтобы выйти из программы можно использовать raise SystemExit(0)

Почему я получаю ошибку «break outside loop» для этой программы на Python, но не для похожей программы?

Я новичок в кодировании и Stack Exchange. Прошу простить любые ошибки в отношении вопросов форматирования (корректировки приветствуются). Мой вопрос заключается в этом. Я делаю упражнения 7-4 в «Python Crash Course». У меня есть две программы, которые очень похожи в терминах форматирования и вывода. city_visits был примером, приведенным автором, и не привел к ошибке «break outside loop». Однако Pizza_toppings приводит к ошибке «break outside loop». Кто-нибудь может объяснить, в чем разница, которая приводит к ошибке в одном, но не в другом? Спасибо за помощь!

prompt = "\nWelcome to Pizza by the sea!" prompt += "\nYou can add as manty toppings as you like! Just tell us!" prompt += "\nWhen you are finished type 'quit'. Tell us what you want: " while True: topping = raw_input(prompt) if topping == "quit": break else: print "Adding " + topping + "." 
prompt = "\nPlease enter the name of a city you have visited:" prompt += "\n(Enter 'quit' when you are finished.)" while True: city = raw_input(prompt) if city == 'quit': break else: print "I'd love to go to " + city.title() + "!" 

Поделиться Источник 24 августа 2016 в 20:53

2 ответа

В Python область видимости циклов и блоков if/else определяется исключительно отступом, поэтому если ваш отступ испорчен — как это кажется в вашем коде — это приведет к странным результатам или не компилируется вообще, если определенные элементы, такие как break , используются в неожиданном контексте.

Ваш код, в обоих примерах, должен иметь отступ вот так:

while True: city = raw_input(prompt) if city == 'quit': break else: print "I'd love to go to " + city.title() + "!" 

Обратите внимание, что city , if и else имеют отступ (а) дальше, чем while , и (б) имеют отступ точно такого же количества. Как ваш отступ не слишком важен, но хорошая практика диктует 4 пробела на уровень отступа (хотя некоторые предпочитают 1 вкладку) . Также никогда не смешивайте вкладки и пробелы, или ваш отступ может выглядеть правильным в вашем редакторе, но в реальности он полностью запутан.

Поделиться 24 августа 2016 в 21:29

Отступы строгие в Python. Это:

if topping == "quit": break 

должно быть таким:

if topping == "quit": break 

Очень тонкий, но очень важный в Python.

Outside loop python что это

Last updated: Feb 17, 2023
Reading time · 4 min

banner

# SyntaxError: ‘break’ outside loop in Python

The Python «SyntaxError: ‘break’ outside loop» occurs when we use the break statement outside of a loop.

To solve the error, use a return statement to return a value from a function, or use the sys.exit() method to exit the interpreter.

syntaxerror break outside loop

Here is an example of how the error occurs.

Copied!
if len('hi') == 2: # ⛔️ SyntaxError: 'break' outside loop break

using break outside loop

The break statement can only be used inside of for or while loops.

Copied!
# ✅ using break inside a for loop for i in range(5): if i == 3: break print(i) # ��️ 0 1 2 print('exited for loop')

The code sample above uses a break statement inside a for loop to exit the loop once the condition is met.

# Use a return statement to return a value from a function

If you meant to return a value from a function, use a return statement instead.

Copied!
def example(): if len('hi') == 2: return 100 return 0 result = example() print(result) # ��️ 100

The return statement can be used to return a value and exit the function.

Python.v.JavaScript

JavaScript for Pythonistas. Python for JavaScripters

Цикл for

Цикл for используется для двух основных целей:

  1. Выполнить некоторое действие заданное число раз.
  2. Обработать все элементы некоторой структуры данных (например, списка).
for i in range(4): print("i =", i) 
i = 0 i = 1 i = 2 i = 3
for(var i=0; i
i = 0 i = 1 i = 2 i = 3
my_list = [1, 2, 10] for element in my_list: print(element) 
1 2 10
var my_array = [1, 2, 10]; for (var i=0; i
1 2 10

Это наиболее безопасный способ перебора элементов массива. Поддерживается во всех версиях JS, нет опасности включить в перебор свойства, не являющиеся индексированными элементами списка, см. другой пример.

var my_array = [1, 2, 10]; for (i in my_array)
1 2 10
var my_array = [1, 2, 10]; for (element of my_array)
1 2 10

требует: es6

var my_array = [1, 2, 10]; my_array.forEach(function(v) < console.log(v) >)
1 2 10
for i in range(4): print("Step", i) print("Outside of loop, i =", i) 
Step 0 Step 1 Step 2 Step 3 Outside of loop, i = 3
for (var i=0; i console.log("Outside of loop, i =", i)
Step 0 Step 1 Step 2 Step 3 Outside of loop, i = 4
for (let i=0; i console.log("Outside of loop, i =", i)
Step 0 Step 1 Step 2 Step 3 [stdin]:4 console.log("Outside of loop, i =", i) ^ ReferenceError: i is not defined at [stdin]:4:37 at Script.runInThisContext (vm.js:132:18) at Object.runInThisContext (vm.js:315:38) at Object. ([stdin]-wrapper:10:26) at Module._compile (internal/modules/cjs/loader.js:1256:30) at evalScript (internal/process/execution.js:98:25) at internal/main/eval_stdin.js:29:5 at Socket. (internal/process/execution.js:211:5) at Socket.emit (events.js:326:22) at endReadableNT (_stream_readable.js:1244:12)
my_list = [1, 2, 10] my_list.some_value = "I'm here!" for element in my_list: print(element) 
Exception: AttributeError 'list' object has no attribute 'some_value'

В объект стандартного типа list невозможно добавить свойства.

class MyList(list): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) brand_new_list = MyList([1, 2, 10]) brand_new_list.some_value = "I'm here!" for element in brand_new_list: print(element) 
1 2 10

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

var my_array = [1, 2, 10]; my_array.some_value = "I'm here!"; for (i in my_array)
1 2 10 I'm here!

В JavaScript массив — это просто (хорошо оптимизированный) объект с числовыми индексами. Если вы добавите ещё одно свойство в этот объект, оно окажется в числе перечисляемых с помощью for . in . .

var my_array = [1, 2, 10]; Array.prototype.some_value = "I'm here!"; for (i in my_array)
1 2 10 I'm here!
my_dict = for key in my_dict: print(key) 
my_obj = Object.prototype.new_property = function() < return "Hello"; >for (key in my_obj)
a b new_property

В объектах JavaScript не различаются записи, свойства и методы. Более того: цикл for в данном случае перебирает не только по элементам самого объекта, но и по элементам его прототипа (если только они специально не отмечены как enumerable: false ).

my_obj = Object.prototype.new_property = function() < return "Hello"; >for (key in my_obj) < if (my_obj.hasOwnProperty(key)) < console.log(key); >>
my_dict = for key, value in my_dict.items(): print(key, "=>", value) 
a => 10 b => 20
my_obj = Object.prototype.new_property = function() < return "Hello"; >for (key in my_obj) < if (my_obj.hasOwnProperty(key)) < console.log(key, "=>", my_obj[key]); > >

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

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