#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()