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

И снова здравствуйте :slightly_smiling_face:
Функции, первый урок, первое задание.
Напишите функцию с названием hello_world, которая будет выводить в консоль фразу - Hello, world!
И вновь не принимает. Пробовал вариант с двумя пропущенными строками, как того требует PEP 8, так и без них.

def hello_world():
    print('Hello, world!')


hello_world()

Доброго времени суток.
Попробуйте без явного вызова hello_world()
просто функцию (2 строки)

Спасибо, сработало.
Осталась последняя загадочная задачка в этом уроке. Здесь туплю скорее я, чем тренажер. В последней строке green в кавычки надо, а вот по остальным ошибкам не совсем понятно, как именно их исправить. Вижу целую кучу вариантов, вроде заменить width на legs, просто удалить лишний width и т. д. Пробую варианты, не проходит.
Найдите и исправьте ошибки в коде:

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:
Уже и не помню, выстаивал ли аргументы в том же порядке, попробуйте.

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


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

Увы, не помогло. Следующий урок, первое задание, опять загадка :slightly_smiling_face:
Напишите функцию с названием function и параметрами a и b, которая возвращает сумму этих параметров. Напишите документационную строку к функции содержащую текст - This function adds two arguments.

def function(a, b):
    """This function adds two arguments
    """
    return a + b

Попробуйте

def function(a, b):
"""This function adds two arguments."""
    return a+b

Получилось, спасибо. Вроде осилил весь тренажер, кроме одного задания в функциях и одного в списках.
Дан список my_list. Создайте срез этого списка с названием sub_list 1) sub_list содержит 3 и 4 элемент списка my_list 2) sub_list содержит элементы my_list начиная с первого, через один 3) sub_list содержит список my_list в обратном порядке 4) sub_list содержит последние три элемента my_list в обратном порядке 5) sub_list содержит копию списка my_list my_list = [1, 10, 22, 43, 11, -2, 7] # ... # code # ...
Мое решение:

my_list = [1, 10, 22, 43, 11, -2, 7]
sub_list = my_list[2:4]
sub_list = my_list[0::2]
sub_list = my_list[::-1]
sub_list = my_list[-1:-4:-1]
sub_list = my_list[:]

Заметил частую проблему: в разных задачах вариант с диапазоном, например, range(0, 10) не принимает, а range(10) - принимает. В то же время в других задачах все с точностью до наоборот. Надеюсь, разработчики пофиксят эти вещи.

В общем тренажер по пайтону это не тренажер, а какой-то кошмар, такое ощущение что я пришёл на поле чудес, только без барабана и нужно угадывать смысл заданий, и самому додумывать их требования, после чего угадывать почему тренажер не принимает твой правильный ответ, архитектура этого тренажера просто невероятно кривая и неправильная, он не принимает разные верные интерпретации решений, как например в одном из первых там где надо ввести 3 числа
number1 = 500
number2 = float(500)
и третье число в котором должно быть 10000.0 в укороченной записи, подумал я и ввёл 10e3, но видите ли тренажер принимает только 1е4. Затем четвертое задание, в котором как оказалось нужно было в добавок ещё удалить первую строку, что в принципе - не логично, ведь исправление ошибок подразумевает то, что бы исправить критичные ошибки, из за которых невозможно запустить код, но создатели этих заданий так не считают.
И так происходит с многими другими заданиями в этом тренажёре, я привёл лишь малую часть того кошмара который там происходит, и собственно, напрашивается вопрос, за что я заплатил деньги?

Создайте переменную “х” и присвойте ей значение 2
В зависимости от условия, если “x” больше нуля, присвойте переменной “y” значение “x” в степени 0.5. В противном случае “y” будет принимать значение – “x” в степени 2
Вывести на консоль значение переменной “y”

x = 2

y = x ** 0.5 if x > 0 else x ** 2

print(y)

Вы допустили ошибку. Перейдите к следующему заданию или попробуйте еще раз

Найдите и исправьте ошибки в коде:
if 0 < x < 7
print("Значение x входит в данный диапазон!")
y = 2 * x - 5
if y < 0:
print("Значение y отрицательно!")
else:
if y > 0:
print("Значение y положительно!")
else:
print(y = 0)

15

Вы допустили ошибку. Перейдите к следующему заданию или попробуйте еще раз

Тоже возился час с заданием:
Сначала так закодил, думал есть подвох и добавил ввод с клавы.
x = float(input())
if 0 < x < 7:
print("Значение x входит в данный диапазон!")
y = 2 * x - 5
if y < 0:
print("Значение y отрицательно!")
elif y > 0:
print("Значение y положительно!")
else:
print("y = 0")

Короче вот правильный ответ мои замыслы не оправдались:

if 0 < x < 7:
print("Значение x входит в данный диапазон!")
y = 2 * x - 5
if y < 0:
print("Значение y отрицательно!")
else:
if y > 0:
print("Значение y положительно!")
else:
print("y = 0")

Только отступы не забудь)

x = 2
if x > 0:
    y = x ** 0.5
else:
    y = x ** 2
print(y)

Согласен с kaffka - отступы в Python`е - это святое )

Каким будет результат выражения 3 != 4 and not ("test" != "test" or
"Python" == "Python")?

объясните пожалуйста)

результат будет False, но не пойму почему
разжуйте плиз

Любую задачу легче решить, разбив ее на подзадачи.
3 != 4 and not ("test" != "test" or "Python" == "Python")
Итак, разберем выражение в скобках, т.к. они позволяют выполниться
выражению, находящемуся в них, первым.
Т.к. операторы равенства имеют более высокий приоритет, выполним
"Python" == "Python" и "test" != "test"
Первое выражение вернет True
Второе - False.
Почему? Т.к. "test" == "test" возвращает True, это значит, что оба операнда равны, и обратное утверждение (!=) ложно, а значит False.
В результате получаем (True or False)
При использовании оператора ИЛИ (OR) если хотя бы один из двух операндов равен True — выражение истинно, а значит результат в скобках будет True.
Сравним 3 != 4
Думается мне, что 3 все же не равно 4 :slight_smile: , а значит согласимся с данным выражением и скажем True.
В результате всех телодвижений получаем:
True and not True
Оператор И (AND) сравнивает значения и если оба операнда True, то и выражение будет так же True, все остальные случаи - False
В данном случае правый операнд у нас есть логическое отрицание (not True), а значит, инвертируется в противоположное значение, т.е. False
Имеем в результате True and False, что в результате логического умножения (да-да, AND еще называют так, проверьте: True = 1, False = 0, перемножьте, что получите в результате 4 комбинаций? :slight_smile: )
дает нам False
Как-то так :slight_smile:

Уверен, после прочтения вышеизложенного Вы сможете объяснить, почему без скобок выражение
3 != 4 and not "test" != "test" or "Python" == "Python"
вернет True :slight_smile:
Главное, помните про приоритеты операторов и порядок их выполнения при равном приоритете :slight_smile:

Напишите цикл while, который бы использовал переменную number, и в теле цикла предлагал ввести число использую переменную str_. И завершал бы работу при вводе любого отрицательного числа. number = 0 str_ = "Enter a positive integer: " # ... # code # ... print("You have entered", number)

ответ:

number = 0
str_ = "Enter a positive integer: "
while number <= 0:
number = int(input(str_))
print("You have entered", number)

помогите, что не так?

Напишите бесконечный цикл, который бы завершался вводом в консоли слова exit. Используйте переменную response. response = "" # ... # code # ...

while number <= 0:

уверены, что условие истинно для положительных чисел?
ИМХО, немного запутались в знаках... Бывает...

  1. Что есть "бесконечный цикл"?
    Цикл, в котором условие истинности никогда не изменится :slight_smile:
    Думаю, при явном указании данного условия, например,
    while True:
    мы получим искомое...
    в самом же цикле запрашиваем слово (бесконечно :slight_smile: )
    например, response = input()
    и проверяем с нужным словом (exit)