Тема: Алгоритм до задачі
#введення списку
n=int(input('Введіть кількість елементів списку n ():'))
print('Введіть елементи списку через Enter')
a=[]
for i in range(n):
x=int(input())
a+=[x]
Чи правильно роблю?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Python → Алгоритм до задачі
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
#введення списку
n=int(input('Введіть кількість елементів списку n ():'))
print('Введіть елементи списку через Enter')
a=[]
for i in range(n):
x=int(input())
a+=[x]
Чи правильно роблю?
0. Python потребує відступів; без відступів код некоректний.
1. На цьому форумі рекомендується використовувати тег code (кнопка <>) для розміщення коду в подальшому.
2. Код цілком придатний для заявленої мети (якщо, звісно, елементи списку - цілі числа). Єдине що
a += [x]
трохи краще записується як
a.append(x)
Ваш варіант створює додатковий список і одразу його викидає. Але то дрібниця.
1. Тут буде ValueError:
n=int(input('Введіть кількість елементів списку n ():'))
Функція int() може конвертувати в число тільки рядок, в якому є тільки число.
2. Тут буде ValueError:
for i in range(n):
В range() потрібно передавати число.
3. Навіщо цей print?
print('Введіть елементи списку через Enter')
4. Краще передавати в цикл сам рядок, а не генератор:
#введення списку
n=input('Введіть кількість елементів списку n ():')
a=[]
for i in n:
a.append(int(x))
Але цей варіант видасть помилку на розділювачі, тому...
5. Найкращий спосіб:
#введення списку
n=input('Введіть кількість елементів списку n ():')
a = n.split()
На пітоні майже все можна зробити кількома рядками коду.
1. Не буде, якщо ввести щось, що може бути перетворене на число, очевидно ж.
2. Не буде, тому що в n буде число. Якщо в п.1 буде ValueError, то цей рядок просто не буде виконаним.
3. Щоб вивести відповідний текст, очевидно.
4. В цикл не передається ніякого генератора, ви про що взагалі?
5. Що саме ви хочете ділити split-ом, якщо введуть кількість, себто одне число?
1. Не буде, якщо ввести щось, що може бути перетворене на число, очевидно ж.
2. Не буде, тому що в n буде число. Якщо в п.1 буде ValueError, то цей рядок просто не буде виконаним.
3. Щоб вивести відповідний текст, очевидно.
4. В цикл не передається ніякого генератора, ви про що взагалі?
5. Що саме ви хочете ділити split-ом, якщо введуть кількість, себто одне число?
Дякую, я дуже неуважний.
1. Не буде, якщо ввести щось, що може бути перетворене на число, очевидно ж.
2. Не буде, тому що в n буде число. Якщо в п.1 буде ValueError, то цей рядок просто не буде виконаним.
3. Щоб вивести відповідний текст, очевидно.
4. В цикл не передається ніякого генератора, ви про що взагалі?
5. Що саме ви хочете ділити split-ом, якщо введуть кількість, себто одне число?
Дякую, я досі думав, що range() - це генератор.
Дякую, я досі думав, що range() - це генератор.
А... тоді я неправильно вас зрозумів. Просто n - це число.
Вибачте за мою неуважність. Я згоден з koala, краще використовувати append(), якщо необхідно вводити саме через Enter.
Але на мою думку, зручніше все ж таки через пробіл. І код коротший:
a = input("Введіть елементи списку через пробіл: ").split()
a = list(map(int, a))
Або в один рядок:
a = list(map(int, input("Введіть елементи списку через пробіл: ").split()))
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися