Как назначить логическое значение из второго блока кода в первый блок отступа в Python? - PullRequest
0 голосов
/ 16 апреля 2019

Когда я присваиваю out_of_marks_limit = True в 5-м блоке, я хочу, чтобы первый блок оператора if был "True", и я не хочу, чтобы код зацикливался или спрашивал пользователя больше.

В других языках программирования отступы используются для того, чтобы программа выглядела хорошо. Но поскольку python проверяет состояние первого блока только для одного и того же отступа, я не могу присвоить логическое значение 2 блока кода первому блоку. Это то, что я пытаюсь сказать.

Я программист среднего уровня, и эта программа только для практических целей.

a = int(input("Enter no. of subjects: "))
count = 1
d = 0
out_of_marks_limit = False          #I want the out_of_limit to be True
if a <= 10:
    if not out_of_marks_limit:
        if count <= a:
            for c in range(a):
                b = float(input("Enter mark of subject " + str(count) + ": "))
                if b <= 100:        #If this condition went false then it will skip to else statement
                    d += b
                    count += 1
                    if count > a:
                        cal = round(d/a, 2)
                        print("Your percentage is " + str(cal) + "%")
                else:
                    out_of_marks_limit = True #So this boolean value should passed to the first line of code
                    print("Marks enter for individual subject is above 100")
else:
    print("Subject limit exceeded")

Я ожидаю, что вывод будет распечатан («Ввод отметок для отдельной темы выше 100»), если out_of_marks_limit имеет значение True и не хочет больше повторять цикл

1 Ответ

0 голосов
/ 16 апреля 2019

Я думаю, что вы можете использовать цикл while для проверки вашего условия out_of_marks_limit:

a = int(input("Enter no. of subjects: "))
count = 1
d = 0
out_of_marks_limit = False          #I want the out_of_limit to be True

while not out_of_marks_limit:
    if a <= 10:
        if not out_of_marks_limit:
            if count <= a:
                for c in range(a):
                    b = float(input("Enter mark of subject " + str(count) + ": "))
                    if b <= 100:        #If this condition went false then it will skip to else statement
                        d += b
                        count += 1
                    if count > a:
                        cal = round(d/a, 2)
                        print("Your percentage is " + str(cal) + "%")
                    else:
                        out_of_marks_limit = True #So this boolean value should passed to the first line of code
                        print("Marks enter for individual subject is above 100")
else:
    print("Subject limit exceeded")
...