вопрос к упражнениям по практикуму Python.

while True:
print("Enter 'exit' to exit loop")
response = input()
if response == "exit":
break
print("Loop has stopped.")

вот ответ который предоставил я, не могу понять где ошибка

попробуйте убрать print`ы... и объявите response до цикла, это указано в условии, и не забывайте про отступы.
тут код можно форматировать через кнопку </>, только пустые строки до и после оставляйте.

response = ""
while True:
    response = input()
    if response == "exit":
        break

while True:
response = input("")
if response == "exit":
break

так???

Практически.
Последний штрих - response = "" в первой строке

Используя цикл for выведите все чётные числа в диапазоне от 1 до 10 включительно. Переменная number – счетчик цикла. Использовать оператор continue. # ... # code # ... print("Current number is", number)

ответ:

for number in range(1, 11):
if number % 2:
continue
print(number)
print("Current number is", number)

что сделал не так? в pycharm на выходе получается:

2
4
6
8
10
Current number is 10

и хоть убейте не понимаю как это задание выполнить:

Используя вложенные циклы и функции print(‘*’, end=’’), print(‘ ‘, end=’’) и print() выведите на экран прямоугольный треугольник.

у меня получается только что-то подобное:

for row in range(1):
for column in range(1):
print("*", end="")
print()

for row in range(1):
for column in range(2):
print("*", end="")
print()

for row in range(1):
for column in range(3):
print("*", end="")
print()

Итак, начнем-с :slight_smile:
for number in range(1, 11):
Первая строка в коде задает цикл от 1 до 10, используя диапазон, согласен. Далее:

if number % 2:

Хм... Мне нравится ход Ваших мыслей, если честно.
Немного необычная проверка на четность.
Возьмем первые 2 цифры диапазона: 1 и 2
подставив в условие, получим

if 1 % 2:
    continue

В данном случае значение выражения будет 1, что дает нам логическое значение True в условии, а значит, выполнится блок после if, и мы перейдем к следующей итерации, где number будет уже = 2

if 2 % 2:
    continue

Это даст нам в результате 0 (2 % 2 = 0), что означает False, а значит, выполнится код после блока условия.
Но мне думается, тренажер мыслит более прямолинейно и ему проще обрабатывать классические конструкции типа

if number % 2 != 0:
        continue

Попробуйте использовать классическую проверку в условии.
Что-то типа:

for number in range(1,11):
    if number % 2 != 0:
        continue
    print("Current number is", number)

Ух ты, тренажер меняется :slight_smile:
Помнится, это был прямоугольник...
Но, углом больше, углом меньше...
Итак, попробуем с 3 углами, не знаю, по вкусу ли тренажеру будет код :slight_smile:. Вы еще, надеюсь, руки на себя не наложили? :slight_smile:
Дано:
Циклы, можно вкладывать один в другой.
Функции print(‘*’, end=’’), print(‘ ‘, end=’’) и print()
Задача: нарисовать треугольный прямоугольник. упс, простите, прямоугольный треугольник :slight_smile:
Давайте подумаем:
Нам надо вывести первую строку "* ",
перейти на новую строку,
вывести "* * "
и т.д.
Т.е. с каждой итерацией нам нужно увеличивать количество выводимых символов в 2 раза...
Возьмем как внешний цикл, for
for row in range(1,6):
Вот мы начали цикл...
Стоп. А как мы будем увеличивать длину?
Правильно, нам нужна еще одна переменная:
column=1
При первой итерации в строке будет column комбинаций звездочки и пробела.
Но нам нужно и как-то ограничить нашу column. А пусть она будет не больше row! Да будет так.
И чтобы наша column постепенно приближалась к row и каждый раз увеличивалась, будем ее увеличивать, используя для этого второй, внутренний цикл. Давайте попробуем while.
while column <= row:
Пора вспомнить про функции вывода.
Выведем во внутреннем цикле звездочку и пробел.

print('*', end='')
print(' ', end='')

и не забудем про постепенное увеличение column
column = column + 1

Ну и последний штрих, после того, как завершили "рисовалки" во внутреннем цикле, не мешало бы перейти на новую строку
print()
Итак, что же мы с Вами наваяли? Если соединить все это, получим:

for row in range(1,6):
    column=1
    while column <= row:
        print('*', end='')
        print(' ', end='')
        column = column + 1
    print()

Что-то типа этого:
*
* *
* * *
* * * *
* * * * *

Попробуйте. Как вариант, попробуйте 2 FOR-цикла, в этом случае нет надобности в дополнительной переменной column (она используется только как счетчик в FOR), и код короче на пару строк :slight_smile:
Но не забывайте о том, что в range конец диапазона не попадает в него, учитывайте эту особенность функции, если будете делать внутренний цикл через FOR.
Удачи.

я просто не очень понял как самостоятельно найти решение для проверки четности и импровизировал на базе данных подсказок в тренажере:pensive:

Напишите функцию с названием print_square, которая будет принимать параметр num и выводить в консоль квадрат числа num. Не используйте в теле функции дополнительные переменные

не получается сделать, heeelp

Напишите функцию sum_ которая принимает три параметра a, b, c. Параметр “c” равен нулю по умолчанию. Функция должна возвращать сумму всех трех аргументов. Не использовать дополнительные переменные.

не понимаю как реализовать

Функция в Python объявляется с использованием ключевого слова def.
Затем через пробел задается имя функции и в круглых скобках - аргументы, если есть. Если их нет - пустые скобки. Вроде так ? :slight_smile:
Идем дальше. Пишем функцию print_square, которая принимает параметр num:
def print_square(num):
Для вывода в консоль используем print, которому передадим наш результат. А результат у нас - возведенное в квадрат num
Для возведения в квадрат используется двойная звездочка **
Не забываем про отступы, 4 пробела на один уровень - в Python они обозначают начало очередного блока кода. Не забываем заканчивать код пустой строкой. В результате имеем:

def print_square(num):
    print(num**2)

Мы не использовали дополнительных переменных в коде и вывели квадрат числа. Попробуйте. Напишите Ваш вариант, который не срабатывал, если не сложно. Попробуем разобраться...

Что ж, давайте реализовывать...
Для начала объявим нашу функцию с 3 параметрами:
def sum_(a, b, c):
Нам известно, что параметр c по умолчанию принимает значение 0
Параметр по-умолчанию - заранее определенный пользователем аргумент, известный функции еще на стадии объявления.
Для задания параметра по-умолчанию просто присвоим нужное значение аргументу. Таким образом, итоговое объявление функции будет выглядеть так:
def sum_(a, b, c=0):
Возврат результата из функции осуществляется с помощью ключевого слова return. Когда интерпретатор Python, выполняя тело функции, встречает return, то он "забирает" значение, указанное после этой команды, и "уходит" из функции.
Для сложения чисел используется +
Таким образом, применив знания на практике, получим примерно следующее:

def sum_(a, b, c=0):
    return a+b+c

Мы не использовали дополнительные переменные и вернули сумму всех 3 аргументов.

def print_square(num):
return num ** 2

всё оказывается было проще чем я думал, голова просто уже задуренная походу

у меня остался только один вопрос в тренажере по этой теме

def table(width=1.5, legs=4, color="brown" ):
print("Table width -", width)
print("Table legs -", legs)
print("Table color -", color)

table()
table(2, color="black", width=2)
table(legs=2)
table(1.2, 2, "gray")
table(1.1, 3)
table(width=2, 4, color="white")
table(color=green, width=2, legs=2)

вариант который вы писали кому-то выше не работает(

Увы. Задача из разряда "Загадки тренажера" :slight_smile:
После исправления пары-тройки явных синтаксических ошибок остается загадкой, что именно хочет тренажер. Уже более 60 попыток. Пока глухо :slight_smile:

из тренажера функции(2) разобрался почти со всем кроме этих 2ух заданий:cold_face:

Напишите функцию с именем func, которая принимает три параметра a, b, c, значения по умолчанию которых 4, 10, -1 соответственно. Функция выводит в консоль максимальное значение, минимальное значение, и модуль параметра “c”. Для решения задачи используйте встроенные функции Python. Порядок следования переменных не изменять.

один из моих вариантов ответа который пробовал:

def func(a = 4, b = 10, c = -1):
print(max(a, b, c))
print(min(a, b, c))
print(abs(c))
func()

и второе задание:

Напишите функцию с названием str_revers, которая принимает параметр str_ строку, и выводит в консоль перевернутую строку, все символы которой идут в обратном порядке. Используйте цикл for, переменную итератор i

тут к сожалению даже не приблизился к правильному ответу

:cold_face::cold_face::cold_face:

По первому вопросу попробуйте без явного вызова func - просто уберите последнюю строку.