Запуск функции в операторе «if»

#python #function #if-statement #import #while-loop

#python #функция #if-оператор #импорт #цикл while

Вопрос:

Когда я запускаю clear (), как показано ниже, он не выводит оператор ‘else’. Это работает только для части ‘if’. Когда я запускаю его на один отступ снаружи, он очищается без выполнения печати как для if, так и для else. Пожалуйста, укажите, где я должен ее разместить.

 import random
from art import logo,vs
from game_data import data
from replit import clear

def game_question():
  return random.choice(data)

def format_data(account):
    account_name = account["name"]
    account_description = account["description"]
    account_country = account["country"]

    return f"{account_name}, {account_description}, {account_country}" 

  
def count(num_a, num_b):
    if num_a > num_b:
     return  "a"
    else:
      return "b"

win = 0

play_on = False

while not play_on:
  print (logo)

  account_a = game_question()
  account_b = game_question()

  if account_a == account_b:
    account_b = game_question()
  
  num_a = account_a["follower_count"]
  num_b = account_b["follower_count"]

  print(f"Account A : {format_data(account_a)}")
  print (vs)
  print(f"Compare to Account B: {format_data(account_b)}")

  ans = input("Which account has more followers? A or B: ").lower()

  if ans == count(num_a,num_b):
    win  = 1
    print ("A win")

  else:
    print (f"Wrong. You lose. Win = {win}")
    play_on = True
  clear()  
 

Комментарии:

1. Пожалуйста, используйте 4 пробела для отступов, так как это общепринятый стандарт сообщества, определенный в PEP 8 — Руководстве по стилю для кода Python . Ваши отступы повсюду и могут очень легко привести к ошибке или неожиданному поведению.

2. Может быть, вы хотите вставить небольшую задержку непосредственно перед clear() , например time.sleep(3) , чтобы дать людям время прочитать текст до того, как консоль будет очищена.

Ответ №1:

В clear() функции нет правильного отступа else: . Попробуйте это для оператора if else

 if ans == count(num_a,num_b):
  win  = 1
  print ("A win")

else:
  print (f"Wrong. You lose. Win = {win}")
  play_on = True
  clear()