2015-09-02 2 views
0

Я только начинаю свой первый класс компьютерных наук и задаюсь вопросом! Вот точные вопросы из моего класса:If-Else Statement - положительные и отрицательные целые числа

«Напиши полную программу python, которая позволяет пользователю вводить 3 целых числа и выходы да, если все три целых числа положительны и в противном случае выводят нет. Например, входы 1, - 1,5. Не выдаст.

«Написать полную программу python, которая позволяет пользователю вводить 3 целых числа и выходы да, если любое из трех целых чисел является положительным и в противном случае выводит нет. Например, входы 1, -1,5. "

Я начал использовать инструкцию if-else (надеюсь, я нахожусь на правильном пути с этим), но у меня возникают проблемы с моим выходом.

num = int(input("Enter a number: ")) 
num = int(input("Enter a number: ")) 
num = int(input("Enter a number: ")) 
if num > 0: 
    print("YES") 
else: 
    print("NO") 

У меня это есть, но я не знаю, с чего это сделать, чтобы получить нужные ответы. Я не знаю, нужно ли добавлять elif или мне нужно настроить что-то еще.

+1

Это на самом деле не подходит для переполнения стека. Если у вас есть конкретный вопрос о том, почему какой-то код не работает, вы можете задать новый вопрос, но мы не собираемся делать домашнее задание. –

+1

В строках 1-3 вы каждый раз запрашиваете число, но затем строка 2 перезаписывает ввод из строки 1, а строка 3 перезаписывает входной сигнал из строки 2 ... поэтому вы даже не проверяете результат первых двух входов , они просто отбрасываются. Вы должны прочитать о циклах, т. Е. 'While' или' for'. –

+0

@DanLowe Это должно быть ответом (а) вместо комментария. Что касается этого вопроса, это лучший ответ, так как он решает непосредственную проблему без использования слишком продвинутых концепций или исправлений propsoing таким образом, чтобы завершить назначение. –

ответ

0

На первых 3 строках вы собираете число, но всегда в одну и ту же переменную (num). Поскольку вы не смотрите на значение num между ними, первые два собранных значения отбрасываются.

Вы должны изучить использование цикла, например. for n in range(3):

for n in range(3): 
    num = int(input("Enter a number: ")) 
    if num > 0: 
     print("YES") 
    else: 
     print("NO") 
2

Вы, вероятно, хотите, чтобы создать три отдельные переменные, как это:

num1 = int(input("Enter number 1: ")) 
num2 = int(input("Enter number 2: ")) 
num3 = int(input("Enter number 3: ")) 

В своем коде вы только сохранить значение последнего числа, как вы всегда пишете то же имя переменного :)

Отсюда с использованием инструкции if else - правильная идея! Вы должны дать ему попробовать :) Если вы застряли, попробуйте найти and и or ключевых слов в python.

+1

Я знаю, что это класс программирования 101, но я хочу, чтобы это настолько сильно повлияло на продвижение использования схем имен переменных {{num1, num2, num3, ..., numN} "над списком или что-то подобное. Зачем поощрять вредные привычки? –

+0

Альтернативой является использование списка. Если это программирование 101, он еще не попал в списки. Я пытаюсь ответить на его вопрос, используя только тот код, который он предоставил. Это плохой подход к SO? –

+0

Я не уверен. Я думаю, это сводится к вопросу педагогики. Мне лично не нравится идея преподавать студентам то, что им просто нужно «отучить» позже, но я также понимаю, откуда вы. Следовательно, почему я не спустил вниз (но не повысил). ;) –

0

Используйте свойства чисел ...

num1 = int(input("Enter number 1: ")) 
num2 = int(input("Enter number 2: ")) 
num3 = int(input("Enter number 3: ")) 

попробовать что-то вроде этого

if num1< 0 or num2 <0 or num3 < 0: 
    print ('no') 

elif num1 > 0 or num2 > 0 or num3 > 0: 
    print ('yes') 
Смежные вопросы