Решение задач на Python #1
ฝัง
- เผยแพร่เมื่อ 25 มี.ค. 2021
- Урок по языку программирования #Python.
Решение задач, в которых применяется #цикл FOR.
Система программирования: Python IDLE.
--------------------------------------------------------------
Учитель: Лосев Антон Владимирович
Сайт учителя: losev-it.ru
VK: losev_it
Telegramm: t.me/losev_info
Inst: /
Сайт курса: sdo.losev-it.ru
Наконец-то, спасибо, а то вводишь для новичков , там уже функии решают, спасибо, доступно )
огромная благодарность за Ваш труд, ну стоило бы добавить отступы согласно pep8 ))))
Спасибо, благодаря вам понял паскаль, уже учусь на python, надеюсь ваш канал будет очень популярным
Спасибо за приятный отзыв))) рад стараться! 👍🏻
Спасибо за видик! практических задачек маловато на ютубе.
Спасибо, для начинающих вполне понятно))
Я вторую задачу через while решил
kg_price = int(input("Enter candy kg price. "))
counter = 0
while counter < 10:
counter = counter + 1
print(str(counter) + " candy kgs cost " + str(counter * kg_price))
вариант третей (писал до просмотра вашего решения):
# сперва количество чисел в последовательности,
# сумма всех (только) отрицательных чисел
# ввёл 5, -2, 3, -3, 12, 44 , будет сумма только -2 и -3
negative_set = []
user_choice_iterations = int(input("How many numbers would you like to add? "))
counter = 0
while counter != user_choice_iterations:
print("Enter a number to add. ")
user_number = int(input())
if user_number < 0:
negative_set.append(user_number)
counter += 1
else:
counter += 1
total_sum = sum(negative_set)
print(total_sum)
Здравствуйте. Готовлюсь к конкурсу по информатике. Спасибо то что хорошо объясняете. Всё легко запомнить. Просто и чётко.
Удачи вам с вашим делом и каналом.
Если олимпиада хорошая, то лучше учить глубже, вряд-ли там будут задачи такого уровня
Блестяще !!
Большое спасибо за видео. Я хотел попрактиковаться, но все другие идеи для программ на питоне это создать сайт, сделать приложение, сделать бота, что-то с нейросетями
Супер! Продолжайте пож в том же духе!))
Спасибо, буду стараться!!
Добрый день! Помогите пожалуйста решить такую задачу в этой программе. Моторная лодка плыла 2 ч. по озеру и 3 ч. по реке по течению. Составьте математическую модель и проект для вычисления расстояния, которое проплыла лодка.
price = int(input())
for i in range(1, 11):
. print(price*i)
Подскажите пожалуйста,как написать в idle Напечатать таблицу умножения на число n (значение n вводится с клавиатуры; 1 < n < 9).
Спасибо
Задание 2
a=int(input("стоимость 1кг конфет : "))
for i in range (1,11):
print("стоимость ",i,"кг конфет : ",i*a)
Дано же вещественное число. А вещественное число это float, нет?)
"second task:"
a = int(input('price: '))
for i in range (1, 11): print(i, 'kg cost', i*a)
а я чуял своим нубовским мозгом что он пургу пишет, искал такой комент....
Я написал так
Print ( ‘Стоимость’ ,а, ‘кг.конфет=‘ , cost, ‘ рублей’ )
Получилось Стоимость 1 кг конфет = 10 рублей . :)
второе за 3 строки
a=int(input("введите стоимость за кг"))
x=[a*(i) for i in range(1,11)]
print(x)
Начал изучить Python в свои 32))
первая у меня выглядит так:
a, b = int(input()), int(input())
nums = []
cnt = 0
for i in range (a, b+1):
nums.append(i)
cnt += 1
print(cnt)
print(* nums)
вторая задача мне кажется проще и понятней будет если оформить так:
price1 = int(input())
for i in range(1,11):
print('Стоимость', i, 'кг. конфет равна', i*price1)
Третью сделал так:
a = int(input())
answ = 0
for i in range(a):
b = int(input())
if b < 0:
answ += b
print(answ)
мне 39 лол
Мне полтос и моё решение 1 задачи:
a, b = (int(input()) for _ in range(2))
nums = [i for i in range(a, b + 1)]
print(*nums, sep = '
')
print(len(nums))
Во второй задаче float
Советую использовать вместо: a=a+1. a+=1
2 задача - в условии написано "Дано вещественное число". В коде же используется int вместо float
int это получается преобразователь для input. Потому что input не понимает цифры я так понял .
@@user-on2wr9ws6b с помощью int ты указываешь какого формата данные вводишь, тоесть целые
@@repulsem4rmelad836 давай дружить . Мне нехватает общения. Просто видео смотреть, утомляет а вот когда общаешься лучше усваивается информация. Дай свой ватсап я писать и говорить аудио буду туда вопросы задовать . Если конечно вы не возражаете …
Int - целое число 1, 2, 3 и т. д.
float - число с точкой (пример: 1.5, 2.8, 5.5 и т. д. )
@@1ntrigo364 спасибо а как насчёт abc функция и что такое модуль ? Спасибо за ответ
Спасибо автору за задачи. Решил пайтоник способом, рекомендую всем изучать Python Core чтобы писать код стилем пайтоник, а не изобретать велосипеды
А это как ?
Итак, теперь сделаем код проще, короче и оптимизирование:
Задача 1:
a = int(input("a: "))
b = int(input("b: "))
print("".join([f"{i}, " for i in range(a, b)]) + str(b))
print(f"Кол-во чисел: {len(range(a, b+1))}")
Задача 2:
price = float(input("Price: "))
print("
" + "".join([f"Price {i} kg: {price * i}$
" for i in range(1, 11)]))
Задача 3
numbers = input("Enter numbers: ").split(", ")
print(f"Sum of all negative number: {sum([int(i) for i in numbers if int(i) < 0])}")
a=int(input())
b=(int(input())
count=0
for t in range(a,b+1):
count+=t
print(t)
array = range(input(), input())
print(array, len(array))
А если в первой задаче пользователь ввел первое число больше, чем второе?
А где PEP8 и правильный нейминг, переучиваться потом сложно.
👍👍👍
А если в первой задаче a > b??
Первая задача не выполнена. А если первое число больше второго.
Заинтересовавшихся прошу выложить ответы решений в комментариях)))
Автору большое спасибо за видео!!!
Да там весь код под if elif кладешь если a>b range(b,a+1) elif a
В условии второй задачи указанно, что число должно быть
Исходя из этого решение второй задачи следующее;
x = 5.31
for i in range(1, 11):
print( x)
x *= 2
учу питон меньше двух недель. объясните понятным языком пожалуйста, когда в цикле for мы пишем для определённой переменной(a=... for a in) , то мы её задаём в начале. в каких случаях мы пишем for i in?
@@user-vk6su5rm3k это негласная переменная, она всегда равна начальному значение. Например for i in range(9)
Начальное значение 0
Вывод будет повторяться 9 раз
0
1
2
3
4
5
6
7
8
В строках работает примерно так же только начальным значением будет первый символ строки.
Ее можно называть как хочешь, если я правильно помню
Внатуре учитель
Как сделать сделал цифры по возрастанию
Функция range генерирует числа в диапазоне который указывается в ()
К примеру range (1, 7) сгенерирует числа от 1 до 7 не включительно
моя первая программа ))
a=int(input("num a "))
b=int(input("num b "))
if ab:
q=0
a=a+1
for i in range (b,a) :
a=a-1
print(a)
q=q+1
print("кол-во чисел = ",q)-2
Я вторую задачу делал без cost
Можно же просто написать
print(a*i, ‘за’, i, ‘кг’)
i - переменная в цикле
Я так и не понял каким образом "q" получает кол-во чисел. Что даёт q + 1 в цикле ?
Нам нужно написать количество чисел, которое равно количеству циклов, потому что числа от a до b идут последовательно q раз. К примеру a = 5, b = 9. выведет 5, 6, 7, 8, 9 (range(a, b+1)), соответственно было 5 строк цикла, каждый из которых также прибавлял к изначально нулевому значению q единицу. Надеюсь понятно объяснить, сам не программист и не учитель.
в 1-й задаче, если a>b тогда программа выдаст неверный ответ, правильнее будет так:
a=int(input('a= '))
b=int(input('b= '))
k=0
p=1 if a
Получается for это цикл а range диапазон. Слушаю лекции Ивана Викторовича, задачки у вас буду брать. Иван Викторович посоветовал задачки брать и делать . У него есть мини курс Python я сейчас на 4 уроке. Первую вашу задачу решил. Немного не понятно про q=0 как считать количество… но думаю уложится в голове… буду продолжать спасибо
Хорошо!! Рад помочь!!👍🏻
Я понял про q=0. В цикле его прописали q=q+1 что бы он на каждый повтор считал 0+1 и +1 и +1 и он будет так делать столько раз сколько произошёл цикл а цикл происходит сколько цифр в радиусе и осталось только print(q) в конце кода
А разве во второй задаче стоимость 1кг конфет не должно быть ВЕЩЕСТВЕННЫМ числом ?
Все верно. Вместо целочисленного типа данных (int) надо было использовать вещественный как в задаче (float).
range(0, a): +1 необязателен.
Спасибо, очень интересные задачи. Пожалуйста, не могли бы посоветовать книгу , для начинающего.
A byte of Python
Python для детей я тоже новичок многие мне советовали читать эту книгу
Здравствуйте А какой редактор кода вы используете?
В видео используется Python IDLE. Могу посоветовать PyCharm
@@losev-it у меня слабый пк, я использую jupyter notebook и то бывает виснет, но что вы испльзуете я не пойму, что за idle я просто не давно Python изучаю и не понимаю как назывется эта интегрированная среда раработки, пытался в notepad++ писать коды но как выводить их так и не понял
Разобрался только в вашей последней задачи нужно сложить все отрицательные числа, я написал такой же код как и у вас, и когда я пишу отрицательное чило выводится их 2, например пишу -2 а выводит -2 -2 и не считает, а просто выводит числа которые я перечислил
Дано список А, у якому знаходяться цілі числа. Вивести тільки ті числа, які діляться
на 2 без остачі.Помогите
Number % a == 0
%- остаток от деления
В первой задаче допущена, хоть и не значительная на данный момент, но в некоторых случая серьезная ошибка. Странно, что в комментариях её так же повторяют. Вместо того, чтобы заводить счетчик для определения количества чисел, можно просто в конце написать print(b-a+1). Таким образом не засоряется лишняя память и не выполняются лишние действия👍
Прошу прощения за тупой вопрос. Как python понял, что переменной q нужно присвоить значение равное количеству выведенных на экран чисел? Ведь до этого переменная q ни как не участвовала в коде кроме как того момента где ей присвоили значение 0.
Я тоже это не понял!😬😬😬
То есть строка "q = q + 1" тебе вообще не о чём не говорит?
#задача 3:
num = int(input('Кол-во чисел:'))
a = 0
sum_num = 0
while a < num:
a += 1
p = int(input(f"Число №{a}: "))
if p < 0:
sum_num = sum_num + p
print(f"Сумма всех отрицательных чисел: {sum_num}")
в восьмой строке рациональней заменить на sum_num += p (то же самое, что и sum_num = sum_num + p)
Всё верно. Это запись показывает сам алгоритм работы. В дальнейших уроках мы переходим на питоник уэй запись)))
Не совсем понял второе задание. Разве не нужно создавать переменную а?
... Так в первой строке кода создаётся
Очень хорошие уроки для начинающих!!! Но у меня редактор пишет: ValueError: invalid literal for int() with base 10: '10 20 30' Я пишу код точно, как у Вас. Но в чем же причина?! Это третья задача. Редактор PYcharm/
Привет была такая же проблема. Нашла решение проблемы, если тебе нужно то вот оно:
list=[]
a = int(input(""))
for i in range(a):
b = int(input(""))
if (b < 0):
list.append(b)
print(sum(list))
Кстати у меня в PYcharm тоже глючит . Попробуйте обычный редактор какой прилагается к Питону .
@@user-on2wr9ws6b сам новичок особо учить не получится но в pycharme эту проблему я решил за счёт пробелов.
#Задача 1:
a = int(input("a > ")) #спрашиваем a
b = int(input("b > ")) #спрашиваем b
len_num = 0
for i in range(a,b):
print(i)
len_num += 1
print('Количество чисел: ', len_num)
#=========================================#
#Задача 2:
price = float(input('Стоимость 1 кг конфет:'))
for i in range(0,11):
print(f'Стоимость {i} кг конфет:',price * i)
За это мы и любим программирование. За то, что у каждой задачи есть множество решений😉
@@losev-it Отличный урок для новичков, вы делаете добро. Спасибо !!!
'third task solved differently'
import random
qStart = int(input('start: -'))
qEnd = int(input('End: '))
qNum = int(input('Quantity: '))
if qStart > 0: qStart = 0 - qStart
List = []
while qNum > 0:
List.append(random.randint(qStart, qEnd))
qNum -= 1
Sum = 0
for i in range (len(List)):
if List[i] < 0: Sum += List[i]
print ('negative numbers sum: ', Sum)
Это не питон. Не знаю на каком языке вы пишите, но это не пайтоник код
@@user-ey7rd9ih4g это Python
1. строка - комментарий
2. модуль random и генерация случайных чисел
3. ввод начала диапазона
4. ввод конца диапазона
5. ввод количества число - в задаче это число 5
6. проверка, если начало диапазона положительное число, меняется его знак
7. создается пустой список
8. цикл Пока количество чисел >0
9. к списку добавляется случайное число в диапазоне от отрицательного до любого другого числа
10. количество чисел уменьшается на 1
11. выход из цикла. начальная сумма отрицательных чисел равно 0
12. цикл перебора списку
13. проверка, если число по списку отрицательно, то оно суммируется
14. вывод на экран суммы отрицательных чисел
Я бы добавил команду print (List)
и да, при вводе второго числа в одном случае программа может вылететь.
@@parus2916 я говорю что это не пайтоник код, а какое-то гавно. Так пишут напитоне только клоуны
import random # я бы конечно упростил бы следующим образом
spisok = [i for i in random.sample(range(-9, 5), 5)]
print(spisok, "
Сумма всех отрицательных чисел", sum([i for i in spisok if i < 0]))
Ответ на первую задачу решил сделать через while. Вот результат, он даже более юзабельный чем с примера ибо он показывает диапазон если a>b:
a = int(input('a'))
b = int(input('b'))
c=a+1
q=b+1
d = 0
while c
А ты хоть знаешь что такое оптимизация?
@@NNP5467 я писал это в первый день обучения, откуда вообще претензии
a и b сидели на трубе, а упала b пропала, кто остался на трубе?
в первой задаче если а больше б то ничего не будет
сер, прошу Вас, не используйте переменные повторно! например, Вы задаете сначала a = (что-то там, не помню, что), а потом в цикле for применяете как временную. не надо так! :(
также, в третьей задаче, в цикле for необязательно для функции range было указывать два параметра - достаточно лишь указать a (то есть, количество чисел) - результат не изменится, а количество символов сохраните.
Не соглашусь с первым замечанием. Иногда эффективнее использовать одну переменную для разных задач(если это позволяет алгоритм), дабы оптимизировать ресурсозатратность программы.
@@losev-it ну, может Вы и правы
То чувство когда увидел условие и уже за 1 секунду в уме решил.
Ну так себе
a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
print("Числа в этом ряду:")
if a < b:
for i in range(a,b):
print(i)
print(i + 1)
print("Количество чисел:",(b-a)+1)
if a > b:
for i in range(b,a):
print(i)
print(i + 1)
print("Количество чисел:",(a-b)+1)
a = float(input("Стоимость кг конфет равна: "))
b = 1
for i in range(1,11):
b = a*i
print("Стоимость",i, "кг конфет равна",b )
a = int(input("Количество чисел равно: "))
q = 0
print("Введите указанное кол-во чисел: ")
for i in range(a):
b = int(input())
if b < 0:
q += b
print("Сумма отрицательных чисел равна:",q)