Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №1231155
А
Аноним
27 июня 2024 13:45 · публичный вопрос
А
Аноним

почему при первом цикле в этом коде после 20/4 = 5 выдаётся none, исправь import keyboard import time a = 19 while True: a = a + 1 if a <= 2000: print(print(a, '/', '4', '=',…

Запрос пользователя

Почему при первом цикле в этом коде после 20/4 = 5 выдаётся none, исправь import keyboard import time a = 19 while True: a = a + 1 if a <= 2000: print(print(a, '/', '4', '=', a/4)) else: break time.sleep(1) if keyboard.is_pressed('ctrl'): break while True: if keyboard.is_pressed('ctrl'): b = int(input()) c = int(input()) while True: b = b + 1 print(b, '/', c, '=', b / c) time.sleep(1) if keyboard.is_pressed('ctrl'): break

Ответ нейросети
27 июня 2024 13:45

Код выводит "None" после 20/4 = 5 из-за того, что внутри функции print используется два вызова print. Функция print уже выводит информацию на экран, поэтому второй print, который пытается вывести результат первого print'a, выдает None, так как сам по себе ничего не возвращает.

Чтобы исправить это, достаточно убрать лишний print в строке с выводом результата деления:

print(a, '/', '4', '=', a/4)

Таким образом, код после исправления будет выглядеть следующим образом:

import keyboard
import time

a = 19
while True:
    a = a + 1
    if a <= 2000:
        print(a, '/', '4', '=', a/4)
    else:
        break
    time.sleep(1)
    if keyboard.is_pressed('ctrl'):
        break

    while True:
        if keyboard.is_pressed('ctrl'):
            b = int(input())
            c = int(input())

            while True:
                b = b + 1
                print(b, '/', c, '=', b / c)
                time.sleep(1)

                if keyboard.is_pressed('ctrl'):
                    break

Теперь результат деления будет корректно выводиться без лишних "None".