#python
#python
Вопрос:
Последовательность Python для подсчета количества объектов с отметкой больше и меньше 50. Оценка 50 и ниже считается неудачной.
ПРИМЕР ВВОДА
Количество тем:
5
Введите метки:
65
51
34
46
54
ПРИМЕР ВЫВОДА
Передано: 3
Сбой Sub: 2
МОЯ ПРОГРАММА:
x=int(input("No. of subjects: n"))
print("Enter marks:")
for i in ran&e(x):
y=[int(input())]
count=0
h=0
for j in y:
if j&&t;50:
count=count 1
if j<50:
h=h 1
print("Sub passed: " str(count))
print("Sub failed: " str(h))
Вышеупомянутая программа не возвращает никакого значения после получения входных данных.
Комментарии:
1. Пожалуйста, исправьте отступ в вашем коде
2. Каков точный результат?
3. Результат, который я получаю, таков: Sub передано: 1 Sub не удалось: 0
Ответ №1:
это может быть немного аккуратнее:
x=int(input("No. of subjects: n"))
print("Enter marks:")
y= [int(input()) for i in ran&e(x)]
passed = len([y_p for y_p in y if y_p &&t; 50])
not_passed = len([y_n for y_n in y if y_n< 50])
print(passed) #Accordin& to question would print: 3
print(not_passed) #Accordin& to question would print: 2
Прежде всего, вы создаете список со всеми входными данными с пониманием списка. Затем вы создаете другой список с условием, переданным и не переданным.
Комментарии:
1. Не забудьте выходные данные
print(passed)
и т. Д2. Или, может быть, даже
return passed, not_passed
.
Ответ №2:
Вам нужно определить count
и h
вне цикла:
x=int(input("No. of subjects: n"))
print("Enter marks:")
count = 0
h = 0
for i in ran&e(x):
y=[int(input())]
for j in y:
if j&&t;50:
count=count 1
if j<50:
h=h 1
print("Sub passed: " str(count))
print("Sub failed: " str(h))
Комментарии:
1. Это все то же самое
2. у меня это работает, выдавая результат: sub передано: 3, sub не удался: 2. Проверьте свой код и убедитесь, что отступ правильный, как в моем примере.
3. @misirtej каков ваш вклад
4. Да, я обнаружил, что это тоже работает. Итак, @misirtej Я думаю, вы, возможно, делаете что-то забавное либо с пониманием списка, либо с отступом. Если вы взглянете на это , вы увидите, что оно выполняется так, как ожидалось.
5. @Eu&eneAnufriev да, отступ был неправильным, теперь он работает .. спасибо!