Задачі Python для новачка

💡 Усі статті, обговорення, новини для початківців — в одному місці. Приєднуйтесь до Junior спільноти!

Всі привіт. З назви топіку ви всі зрозуміли хто я)

Так от — пробую сам опанувати пітона без платних курсів. Знайшов в неті цікавий «самоучитель» і вчусь. Ось дійшов до теми «операції зі строками» і тут ось така задача:

Напишите программу, которая:

  1. получает на вход строку чисел, разделенных запятыми;
  2. формирует из чисел два списка — с четными и нечетными числами;
  3. выводит списки без скобок на отдельных строках.

Пример ввода:

3,4,2,7,8,9,1,11,2,56,2,6,81

Вывод:

3 7 9 1 11 81

4 2 8 2 56 2 6

Решение:

st = [int(i) for i in input().split(’,’)]

lst_odd = [i for i in st if i % 2 != 0]

lst_even = [i for i in st if i % 2 == 0]

print(*lst_odd)

print(*lst_even)

Хотілось би дізнатись від людей, що мають досвід — це завдання і це рішення підходить для початківця, який ніколи не мав справу з програмуванням?

Чи це завдання реально дуже просте?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

def def_num(num_str: str) -> str:
num_list = num_str.split(",")
even_num = []
not_even_num = []

for num in num_list:
if int(num) % 2 == 0:
even_num.append(num)
else:
not_even_num.append(num)

print(“, “.join(even_num))
print(”, ".join(not_even_num))

def_num("3,4,2,7,8,9,1,11,2,56,2,6,81″)

inp = list(map(int, input().split()))
a = []
b = []
for i in inp:
if i % 2 != 0:
a.append(i)
elif i % 2 == 0:
b.append(i)
print(a, “\n”, b)

inp = list(map(int, input().split()))
a = []
b = []
for i in inp:
if i % 2 != 0:
a.append(i)
elif i % 2 == 0:
b.append(i)

print(a, “\n”, b)

class tasks:
def task1(in1):
inlist=in1.split(",")
r1=""
r2=""
for i in inlist:
i=int(i)
if i%2==0:r1+=str(i)+" "
if i%2==1:r2+=str(i)+" "
return r1,r2
print(tasks.task1("1,41,40,28,70,135,43″))

>>> print(", ".join([i for i in "3,4,2,7,8,9,1,11,2,56,2,6,81".split(",") if int(i) % 2 == 0]))
>>> print(", ".join([i for i in "3,4,2,7,8,9,1,11,2,56,2,6,81".split(",") if int(i) % 2 != 0]))
Python останній раз використовувала 6 років тому

x = input("Введіть числа: ")

list_1 = []
list_2 = []

for i in x.split(’,’):
if int(i) % 2 == 0:
list_1.append(i)
else:
list_2.append(i)

print("Парні числа:",*list_1)
print("Непарні числа:",*list_2)

def number_prog(spisok):
    chet = []
    not_chet = []
    for i in spisok:
        if i % 2 != 0:
            not_chet.append(i)
        elif i % 2 == 0:
            chet.append(i)
    return chet not_chet

a = number_prog([3, 6, 2, 8, 5, 7, 9])
print(a)

Код на уровне 2 класса (у меня)

ой, когда писал ошибку сделал, return chet, not_chet

что ж я немного подучился. и теперь вижу насколько мой способ был плохим. я два раза пробегаюсь по массиву — это плохо. вместо этого можно один раз пробежать по массиву формируя сразу два новых массива — если число четно — добавляем значение в первый массив, если нечетное — во второй. реализацию оставлю на вам

def string_convert(string_list:str):
«„„получает на вход строку чисел, разделенных запятыми;
формирует из чисел два списка — с четными и нечетными числами;
выводит списки без скобок на отдельных строках.““»
even_number,odd_number = [x for x in string_list.split(",") if int(x)%2==0 ],[x for x in string_list.split(",") if int(x)%2!=0 ]
return print("".join(even_number),"".join(odd_number), sep="\n")
мое решение, старался как мог

def string_convert(string_list:str):
«„„получает на вход строку чисел, разделенных запятыми;
формирует из чисел два списка — с четными и нечетными числами;
выводит списки без скобок на отдельных строках.““»
even_number,odd_number = [x for x in string_list.split(",") if int(x)%2==0 ],[x for x in string_list.split(",") if int(x)%2!=0 ]
return print("".join(even_number),"".join(odd_number), sep="\n")

трічі ходите по списку але могли б тількі один раз
якщо для собесу, про це вам 100% скажуть
якщо вам треба пару гиг з диску прочитати то фиг ви
це виконаєте такім чином

але дуже рідко щоб тут був боттлнек, тому виглядає норм.

* задачка з зірочкой, на вході файл в 6GB, зробить так само плюс виміряйте перф,
спробуйте зробити це 5 різнимі підхідами, виміряйте всюду перф, він відрізняється,
чому?

чому це скажуть ? комплексіти все одно О(н) А от зірочка буде — оптімізувати рішення для списку який не влазить увесь до памяті або прискориті видачу у дістрібютед системі.

Так треба не массив створювати, а вирішувати якраз через generator expression

k=input("4isla: ")
zapyatie=k.split(’,’)
a=[]
b=[]
for i in zapyatie:
num=int(i)
if num%2==0:
a.append(num)
else:
b.append(num)
for p in a:
print(p)
for l in b:
print(b)

с скобок вконце(

Try Udemy. Only 13 usd, 480 uah. Sorry no indentations, I used mobile phone.

def separate_numbers(input_str):
numbers = input_str.split(’,’)
even_numbers = []
odd_numbers = []

for number in numbers:
number = int(number.strip())
if number % 2 == 0:
even_numbers.append(number)
else:
odd_numbers.append(number)
return even_numbers, odd_numbers

input_str = input("Введите строку чисел, разделенных запятыми: ")
even_numbers, odd_numbers = separate_numbers(input_str)

print(*odd_numbers)
print(*even_numbers)

Для початківця підходять будь які прості задачі, і ок буде будь яке рішення цих задач, головне щоб працювало.
Вирішив одну задачу, переходиш на нову.
Жодного дня без коду.

той хто є

ніколи не мав справу з програмуванням

не використовував би list comprehension, а використовував би звичайний цикл for
не використовував би unpack operator, бо коли вчать з нуля то там спершу, що змінна це кошик, а unpack operator можуть взагалі не дойти.
Код нормальний для джуна.

codewars хороша штука, нижче порадили. Там ще можна побачити, як інші вирішують — повчитися.

Дуже рекомендую проект ейлера. Спробуйте порішати задачі звідти.

Все пізнається у порівнянні.
Ось приклад складної задачі:
1. Створіть три таблиці: Що, Хто, Що робить
2. Візьміть текст і розмістить підходящі слова по цих трьох таблицях.
3. Створіть прості речення згідно шаблону. Шаблон визначить із вхідного зразка.
Наприклад:
Вхідний зразок: Танк іде
Шаблон: Що — Що робить
Вихідне речення може бути: Кіт їсть.

Хотілось би дізнатись від людей, що мають досвід — це завдання і це рішення підходить для початківця, який ніколи не мав справу з програмуванням?

Залежить від того, чи можеш ти написати код, який не потребує відлагодження. Якщо ти відразу бачиш, як вирішити задачу, написав код, та він відразу працює, значить задача занадто проста для того, щоб бути корисною.

На російській? Не соромно?
А задачка проста, має багато способів розв’язку.

Вообще плевать на каком языке говорить)
А от Вас я уже устал, борцы за язык, давайте я на марокканском диалекте буду общаться, Вы что то поймете?

Коли хочете щось складніше — спробуйте таку:
Прочитати текст з файлу й роздрукувати 5 слів, котрі в тексті найчастіше зустрічаються.

Там цю задачу ще можна буде декілька разів покращувати — як в реальному житті відбувається з проектами, коли показуєш результат — і одразу отримуєш нові забаганки.

Можете мені писати в телеграм t.me/denyspoltorak, якщо таке цікаво. Щоправда, до рівня «знайти роботу» не доведу, бо в самого Пітон — не основна мова, та й з роботою зараз геть кепсько.

Кому цікаво спробувати вирішити це завдання, то ось дуже схоже онлайн-завдання: «Підрахунок словникового запасу» (є автоматична перевірка).

www.codewars.com/kata/latest
Get 3-4 kyu in the programming language you’re interested in, and you can confidently start searching for a job.

Підписатись на коментарі