И снова здравствуйте
Функции, первый урок, первое задание.
Напишите функцию с названием 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)
Доброго дня.
Тоже из разряда "непройденных", вариантов много, непонятно, что конкретно исправлять
Уже и не помню, выстаивал ли аргументы в том же порядке, попробуйте.
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")
Увы, не помогло. Следующий урок, первое задание, опять загадка
Напишите функцию с названием 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)
Вы допустили ошибку. Перейдите к следующему заданию или попробуйте еще раз
Тоже возился час с заданием:
Сначала так закодил, думал есть подвох и добавил ввод с клавы.
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 , а значит согласимся с данным выражением и скажем True.
В результате всех телодвижений получаем:
True and not True
Оператор И (AND) сравнивает значения и если оба операнда True, то и выражение будет так же True, все остальные случаи - False
В данном случае правый операнд у нас есть логическое отрицание (not True), а значит, инвертируется в противоположное значение, т.е. False
Имеем в результате True and False, что в результате логического умножения (да-да, AND еще называют так, проверьте: True = 1, False = 0, перемножьте, что получите в результате 4 комбинаций? )
дает нам False
Как-то так
Уверен, после прочтения вышеизложенного Вы сможете объяснить, почему без скобок выражение
3 != 4 and not "test" != "test" or "Python" == "Python"
вернет True
Главное, помните про приоритеты операторов и порядок их выполнения при равном приоритете
Напишите цикл 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:
уверены, что условие истинно для положительных чисел?
ИМХО, немного запутались в знаках... Бывает...