Я очень новичок в этом. Я только начал программировать на прошлой неделе. Мне нужна элементарная помощь. Мое задание состоит в том, чтобы ввести пять чисел и вывести на печать «нечетное» или «четное» для каждого из них. Вот как я начал:
num = int(input())
if (num % 2) == 0:
print('even')
else:
print('odd')
Как я могу иметь пять чисел на входе? Я не хочу составлять жестко закодированный список; программа должна каждый раз работать с разными числами. Надеюсь, вы понимаете мой вопрос. Спасибо за помощь.
РЕДАКТИРОВАТЬ: Я не должен ничего импортировать, поэтому я не могу использовать import random
. Я должен ввести 5 чисел. Например:
ввод
3
5
2
1
33
Вывод
Odd
Odd
Even
Odd
Odd
Итак, я добился некоторого прогресса, но это все еще неправильно.
for _ in range(5):
num = int(input())
if (num % 2) == 0:
print('even')
else:
print('odd')
Теперь я получаю вывод (четный или нечетный) до того, как запишу все числа на входе. Я не знаю, как это изменить. Я хочу написать пять чисел, а затем получить результат. Надеюсь, я объяснил это хорошо. Извините за путаницу.
5 ответов
Просто узнайте что-нибудь новое о понимании списков:
ls = [(print(num, "Even") if (num % 2) == 0 else print(num, "Odd")) for num in range(1,6)]
Вывод:
1 Odd
2 Even
3 Odd
4 Even
5 Odd
Привет👋🏻 Надеюсь у тебя все хорошо!
Если я правильно понял ваш вопрос, вы пытаетесь добиться чего-то подобного этому:
import random
# you can define your own limits
# or you can use numpy to generate random numbers from the different distributions
number = random.randint(0, 999)
print(f"Current number: {number}.")
print("Even!") if number % 2 == 0 else print("Odd!")
Немного сложновато, но поскольку вы учитесь программировать, вам следует собрать различные спецификации задач, а затем разработать решение.
import random
experiment_to_run = int(input()) # how many times you want to run the experiment, let us say default is 5, but that can be user input as well
lower_bound_of_numbers = int(input()) # lower bound of the integer range
upper_bound_of_numbers = int(input()) # upper bound of the integer range
def print_even_or_odd(experiment_to_run = 5, lower_bound_of_numbers = 1, upper_bound_of_numbers = 10):
for current_experiment_run in range(experiment_to_run):
current_number = random.randint(lower_bound_of_numbers, upper_bound_of_numbers) # this generates random integer between lower_bound_of_numbers (inclusive) and upper_bound_of_numbers (exclusive)
if current_number % 2 == 0:
print ('even')
else:
print ('odd')
# dry run
print_even_or_odd(experiment_to_run, lower_bound_of_numbers, upper_bound_of_numbers) # feel to add current_number also to the log if needed for debugging purpose
Попробуй это:
nums = input('Enter your numbers: ').split()
for num in nums:
if int(num) % 2 == 0:
print('even')
else:
print('odd')
Поскольку вы отредактировали свой вопрос, похоже, вам не нужны случайные числа, а вместо этого вы хотите, чтобы пользователь вводил пять чисел подряд.
Кажется, вы хотите, чтобы пользователь сначала ввел все пять чисел, а затем отобразился весь вывод.
Для этого сначала запустите функцию input
пять раз, используя цикл for
, и добавьте каждый вход в список, а затем используйте другой цикл for
, чтобы вывести, является ли каждый из них нечетным. или даже.
Вот код:
# Create a list to store the five numbers
nums = []
# Fill the list with five inputs from the user
for _ in range(5):
nums.append(int(input()))
# Explanation of above line:
# - The `append` function adds a new item to a list
# - So this line gets input from the user,
# turns it into an integer,
# and adds it to the list
# Finally, output whether each number is odd or even
# Iterate over the `nums` list using a for loop
for num in nums:
# The code here will run one time for each item in the `nums` list
# Each time the code runs, the variable `num` will store the current item
# So we can do a test on `num` to see if each item is odd or even
if (num % 2) == 0:
print(num, "is even")
else:
print(num, "is odd")
Выше приведен один из способов выполнения вашей задачи, однако он не соответствует передовым методам по следующим причинам:
- Код не разделен на функции, поэтому не так ясно, что делает каждая часть.
- Основной код должен находиться под
if __name__ == "__main__:"
, чтобы код выполнялся только тогда, когда он должен - Код выдаст ошибку, если пользователь введет что-то, что не является целым числом. Вместо того, чтобы игнорировать это, мы должны перехватить эту ошибку и попросить пользователя повторить попытку, если он введет что-то недопустимое.
Ниже приведен код, который я, вероятно, написал бы, если бы мне самому дали эту задачу. Это намного дольше и, возможно, излишне для такой простой задачи, но вы должны попытаться выработать хорошие привычки кодирования с самого начала.
#!/usr/bin/env python3
"""This script gets five integers from the user and outputs whether each is odd or even"""
def main():
nums = [get_user_num() for _ in range(5)]
for num in nums:
if is_even(num):
print(num, "is even")
else:
print(num, "is odd")
def get_user_num():
num = input("Enter an integer: ")
while True:
# Repeat until the user enters a valid integer
try:
return int(num)
except ValueError:
num = input("That was not an integer - please try again: ")
def is_even(num):
return (num % 2) == 0
if __name__ == "__main__":
main()
Объяснения некоторых вещей в улучшенном коде:
- Что делает комментарий в верхней части кода?
- Как работают функции в Python?
- Список понятий в Python
if __name__ == "__main__":
:
Эта строка запускает код только в том случае, если файл запускается непосредственно как основной файл кода. Если код импортируется другим файлом Python (выполняется косвенно), то эта строка предотвращает запуск кода. Это предотвращает случайное выполнение кода и получение неожиданного результата. Вы можете узнать больше об импорте файлов Python здесь и узнать больше о том, как работает эта строка < a href="https://www.freecodecamp.org/news/if-name-main-python-example/" rel="nofollow noreferrer">здесь.
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.
for
.