цикл while

Leksandr0

Новичок
Пользователь
Сен 13, 2020
10
0
1
Используя цикл while, посчитайте и выведите на экран сумму квадратов всех целых чисел от 15 до 22 включительно.
Ни как не могу решить. Помогите. Или пните в нужном направлении.
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
Python:
i=15
sum_sql=0
while i<=22:
    sum_sql=sum_sql+(i*i)
    i+=1
print(sum_sql)
Как-то так.
 

Leksandr0

Новичок
Пользователь
Сен 13, 2020
10
0
1
Спасибо!
А я пытался i писать через and.
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
Спасибо!
А я пытался i писать через and.
Можно и через and, но зачем плодить лишние сущности?
 

DorianKon

Новичок
Пользователь
Май 23, 2021
5
0
1
Можно и через and, но зачем плодить лишние сущности?
Затем, что по урокам мы пока не проходили
i=15
sum_sql=0
while i<=22:
sum_sql=sum_sql+(i*i)
i+=1
такую формировку. А в задаче нужно использовать то, что знаем
 

DorianKon

Новичок
Пользователь
Май 23, 2021
5
0
1
Почему sum_sql=0 ? Откуда 0 взялся?
Почему sum_sql=sum_sql+(i*i) ? Почему не i**2 ?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Почему sum_sql=0 ? Откуда 0 взялся?
Почему sum_sql=sum_sql+(i*i) ? Почему не i**2 ?
sum_sql это сумма квадратов и изначально она равно 0
 
  • Мне нравится
Реакции: DorianKon

DorianKon

Новичок
Пользователь
Май 23, 2021
5
0
1
sum_sql это сумма квадратов и изначально она равно 0
А почему сумма квадратов изначально равна нулю? В условии ведь этого нет. Там есть от 15 и до 22. Откуда мы придумали 0? Почему тогда не 1 взяли или -100?
 

DorianKon

Новичок
Пользователь
Май 23, 2021
5
0
1
Это как в задаче на поиск максимального значения из списка.
Ответ такой:
# задаем список
mas = [3, 5, 67, -65, 34, 21]
# предположим, что максимальный элемент равен mas[0]
maximum = mas[0]
for i in range(1, len(mas)):
if mas > maximum:
maximum = mas
print(maximum)

Но мне не понятно "предположим, что максимальный элемент равен mas[0]"... Откуда мы это предположили? Предположили - значит не точно. Верно? Тогда можно предположить, что максимальный элемент равен 1000. Почему нет?)
И почему пишется "range(1, len(mas))"? Почему от 1, а не от 0? Нельзя написать "range(7)? Мы же знаем, что там 6 элементов
Этого, почему-то в учебниках нет.... Приходится заучивать, как попугай. А так толку не будет
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 589
459
83
Это как в задаче на поиск максимального значения из списка.
Ответ такой:
# задаем список
mas = [3, 5, 67, -65, 34, 21]
# предположим, что максимальный элемент равен mas[0]
maximum = mas[0]
for i in range(1, len(mas)):
if mas > maximum:
maximum = mas
print(maximum)

Но мне не понятно "предположим, что максимальный элемент равен mas[0]"... Откуда мы это предположили? Предположили - значит не точно. Верно? Тогда можно предположить, что максимальный элемент равен 1000. Почему нет?)
И почему пишется "range(1, len(mas))"? Почему от 1, а не от 0? Нельзя написать "range(7)? Мы же знаем, что там 6 элементов
Этого, почему-то в учебниках нет.... Приходится заучивать, как попугай. А так толку не будет
в книгах показывают синтаксис и как им пользоваться, так же если книга хорошая, то объясняют немного подкапотку...
len(mas) правильнее, так как в массиве может быть не 6 элементов...
от 1, потому что если от нуля, то будет лишняя итерация в цикле for, и код упадет с ошибкой выхода за пределы массива...
так же у вас код не понятный, в теле цикла for вы сравниваете список с числом, этого в учебнике скорее всего нет...

upd
ошибся, от 1, потому что первый элемент мы уже присвоили, и нет смысла с него начинать\
прошу прощения

upd2
и ваш код наверное выглядит так
Python:
# задаем список
mas = [3, 5, 67, -65, 34, 21]
# предположим, что максимальный элемент равен mas[0]
maximum = mas[0]
for i in range(1, len(mas)):
    if mas[i] > maximum:
        maximum = mas[i]
print(maximum)
 
Последнее редактирование:
  • Мне нравится
Реакции: DorianKon

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
А почему сумма квадратов изначально равна нулю? В условии ведь этого нет. Там есть от 15 и до 22. Откуда мы придумали 0? Почему тогда не 1 взяли или -100?
Надо найти сумму 3-х чисел. Складывать будем по порядку, в одну переменную. Очевидно что сначала переменная равна 0, ведь вряд-ли она -100, ведь тогда сложив с ней 1, 2, 3 мы получим сумму -94, а не 6
 
  • Мне нравится
Реакции: DorianKon

DorianKon

Новичок
Пользователь
Май 23, 2021
5
0
1
Надо найти сумму 3-х чисел. Складывать будем по порядку, в одну переменную. Очевидно что сначала переменная равна 0, ведь вряд-ли она -100, ведь тогда сложив с ней 1, 2, 3 мы получим сумму -94, а не 6
Спасибо! Уже понятнее) Но еще не до конца... А зачем делать так: 0+1+2+3? Не легче: 1+2+3?
И буду признателен, если посоветуете хороший учебник или курсы,или видео, где подробно описаны все детали и причины (почему так, а не по другому)
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Спасибо! Уже понятнее) Но еще не до конца... А зачем делать так: 0+1+2+3? Не легче: 1+2+3?
И буду признателен, если посоветуете хороший учебник или курсы,или видео, где подробно описаны все детали и причины (почему так, а не по другому)
Сложение начинается с 0, потому что чтобы начинать его например с 1 (речь про пример с числами 1 2 3) нам надо сразу создавать переменную суммы (ту в которой будет сумма чисел) равно 1, а потом уже к ней прибавлять. Это бы выглядело примерно так:
Python:
mas = [1,2,3]  # Создаем массив
for i in mas:  # i по порядку принимает все значения массива
    if amount:  # Если amount вообще существует
        amount += i  # То прибавляем к нему i
    else:  # А если не существует
        amount = i  # Создаем со значением i

А если складывать с 0, то код будет такой:
Python:
mas = [1,2,3]  # Создаем массив
amount = 0  # Создаем переменную в которую будем складывать
for i in mas:  # i по порядку принимает все значения массива
    amount += i  # Прибавляем к amount i
И такой код понятнее и короче


На счет курсов, по конкретной задаче их нет, это просто как-то само собой разумеется (с практикой приходит)

А просто хорошие курсы по Python вот:
1) https://stepik.org/course/67/syllabus
2) https://stepik.org/course/512/syllabus
 
  • Мне нравится
Реакции: DorianKon

Форум IT Специалистов