Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python цикл while

Дима Плетнёв Ученик (95), открыт 1 неделю назад
 import time 

def update_lof():
global lof
lof -= 1
if lof < 0:
lof = 0
print(f"lof: {lof}")

lof = 10

while True:
update_lof()
time.sleep(1) # Задержка на 1 секунду

# Пример использования input для ввода данных
user_input = input("Введите число: ")
print(f"Вы ввели: {user_input}")

Проблема в том, что выполняется цикл, и input не начинает работать.

Чтобы переменная lof уменьшалась и код работал последовательно.
2 ответа
Вертолётов 625 Мудрец (13288) 1 неделю назад
Код:
 import time 

def update_lof():
global lof
lof -= 1
if lof < 0:
lof = 0
print(f"lof: {lof}")

lof = 10

while lof > 0:
update_lof()
time.sleep(1) # Задержка на 1 секунду

# Пример использования input для ввода данных
user_input = input("Введите число: ")
print(f"Вы ввели: {user_input}")
Код, версия 2 со сбросом значения lof:
 import time 
import threading

def update_lof():
global lof
while True:
if lof > 0:
lof -= 1
else:
lof = 10 # Сбрасываем значение обратно к 10, если оно достигает нуля
print(f"lof: {lof}")
time.sleep(1) # Задержка на 1 секунду

def input_thread_function():
user_input = input("Введите число: ")
print(f"Вы ввели: {user_input}")

# Инициализация переменной lof
lof = 10

# Создание и запуск потока для бесконечного цикла
lof_thread = threading.Thread(target=update_lof)
lof_thread.daemon = True # Позволяет завершить программу, если останется только этот поток
lof_thread.start()

# Ожидание ввода от пользователя в основном потоке
input_thread_function()
Дима ПлетнёвУченик (95) 1 неделю назад
не подходит, мне ненадо чтобы цикл заканчивался на нуле мне надо чтобы он постоянно работал
Вертолётов 625 Мудрец (13288) Дима Плетнёв, Но ведь тогда нельзя будет запустить "Введите число: " Там же lof будет в минус уходить и печататься так до бесконечности.
Rollingchef Мыслитель (9342) 1 неделю назад
import time

def update_lof(lof):
#global lof
#lof -= 1
if lof < 0:
lof = 0
print(f"lof: {lof}")

user_input = int(input("Введите число: "))

while user_input > 0:
update_lof(user_input)
user_input -= 1
time.sleep(1) # Задержка на 1 секунду

# Пример использования input для ввода данных
#user_input = input("Введите число: ")
#print(f"Вы ввели: {user_input}")
Похожие вопросы