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


#21


#22

Тренажер - хитрая бестия.
К сожалению, без подписки не могу глянуть свой код, хотя раньше свободно листал
по всем уровням...
По коду что могу сказать... У Вас даже при первом вводе отрицательного числа оно проверяется только на следующей итерации, и выводит это число перед этим все равно.
Может, это и не нравится мистеру Тренажеру...
Попробуйте что-то типа этого:

number = 0
str_ = "Enter a positive integer."
number = int(input(str_))
while number >= 0:
    print("You nave entered", number)
    number = int(input(str_))

P.S. И для того, чтобы можно было код вставлять, тут надо пустую строку добавлять перед вставкой, а то не работает...


#23

Перепробовал кучу вариантов, ничего не подходит. И comp3 = complex(6, -2) - в уроке был именно такой пример, и comp3 = 6 - 2j пробовал, и что-то еще. В Pycharm проблем нет, все работает.:thinking:


#24

Доброго дня.
Вариант
comp3 = complex("6-2j")
тоже не подходит?

В описании функции:

При преобразовании из строки строка не должна содержать пробелов вокруг центрального оператора + или -
Если первый параметр является строкой, он будет интерпретирован как комплексное число, и функция должна вызываться без второго параметра.


#25

Доброго времени суток.

Условные конструкции - задание 1:
Создайте переменную A, присвойте ей значение 10.
Выведете сообщение на консоль “A – is greater than 5”, только при условии, если A больше 5.

Код:

A = 10
if A > 5: 
print("A – is greater than 5")

Никак не проходит. Перепробовано все что только можно. Что в данном случае может понадобится тренажеру?


#26

Странно, код 1 в 1 как мой (5 строк):

A = 10

if A > 5:
    print("A - is greater than 5")

Часто вывод в консоль копируют из задания, чтобы не набирать ручками.
Попробуйте дефис поменять на минус, они могут быть похожи, не забудьте пустую 5 строку, попробуйте вместо табуляции в 4 строке поставить 4 пробела. Я с 8 попытки только ублажил тренажер :slight_smile:
По поводу тире, информация для размышления:
ради интереса скопировал строку из задания слева в редактор справа, потом из редактора в текстовый документ, изменил в редакторе тире "-" на минус "-", скопировал второй строкой в текстовый документ, сохранил и открыл в hex-редакторе, как оказалось, в первой строке тире имеет аж 3 байтовый код E2 80 93 (Среднее тире с кодом U+2013), а во второй это обычный минус (значение с кодом U+002D).
ppp


#27

Таки подошло, спасибо :slightly_smiling_face:


#28

Действительно, дело было в злосчастном тире-минусе. Спасибо за подсказку, тут действительно не угадаешь с тобой что-то не так или с тренажером и заданием. Видимо по какой-то причине кодировка сбивается, не сильна в этом, но замечание интересное.

С заданием, про которое спрашивали выше, я так же какое-то время мучилась. В самом условии не сказано, что нужно каждый раз выводить строчку "Вы ввели число такое-то". Перепробовав n-е число вариантов, наткнулась на верный, быть может кому-то пригодится.
Циклические конструкции в Python -> задание 2

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

#29

Подскажите пожалуйста по заданию.
Напишите код в соответствии с инструкциями в задании
Напишите функцию с именем func которая будет выводить в консоль числа от 0 до 4, каждое в новой строке если ее запустить без параметров. Либо числа от 0 до n-1, где n – параметр функции. Используйте цикл while и переменную итератор i. Цикл while должен проверять условие (i != n).

...

code

...

func()

Мой код:
def func(n=5):
i = int()
while i != n:
print(i)
i += 1
func()
в компиляторе все отлично работает, при этом тренажер выдает ошибку...


#30

К сожалению, не имею уже свободного доступа в тренажеру,
авторы сайта прикрутили его к подписке зачем-то...
Раньше сравнивал код со своим.
Ваш код рабочий, но тренажер очень капризный в плане стиля.
Авторы могут строго соблюдать PEP 8
Попробуйте придерживаться стиля в этом плане, особенно в части отделения функций верхнего уровня от остального кода (2 пустые строки).
Если используете IDE для проверки, попробуйте Reformat Code.
Попробуйте явно инициализировать i, а не через функцию...
Попробуйте 4 пробела вместо табуляции использовать, замена не всегда корректно работает. И для удобства восприятия кода можно использовать теги (значок </>, выделите код и нажмите), причем и тут свои нюансы есть - отделяйте код пустой строкой от остального текста, иначе теги не сработают

def func(n=5):
    i = int()  # а так тоже ошибка (i = 0)?
    while i != n:
        print(i)
        i += 1


func()

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


#31

Спасибо. Приняло с i = 0


#32

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

response = ""
while response != "exit":
    response = input("Type 'exit' to exit: ")

По традиции, тренажер решение не принимает, хотя в IDE все ок.


#33

Попробуйте цикл через while True

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

#34

Спасибо, помогло.
Еще остался вопрос с последним заданием:
Напишите программу, которая выводит на консоль квадрат из символов “*”, с пробелом между символами, в котором строки row = 5, столбцы column = 5.
Квадрат рисует, ответ не принимает :slightly_smiling_face:

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

#35

О, это весьма интересная задача.
Я как только не пробовал...
У меня тоже задача так и осталась в нерешенных.
Интересно было бы узнать верный ответ ))
Вот мой вариант, один из многих...

row = 5
column = 5

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

Кстати, попробуйте column и row поменять местами в своем коде (только что пришла мысль)


#36

Поменял местами, не прошло :frowning_face:


#37

Добрый день!
Вопрос по 11 заданию в переменных и их типах
Найти и исправить ошибки в коде
a = 10
b = 2
if a = b:
print("a = b")
elif a <= b:
print("a < b")
elif a > b:
print("b > a")
Пробовала:
a = 10
b = 2
if a == b:
print("a = b")
elif a < b:
print("a < b")
elif a > b:
print("b < a")

a = 10
b = 2
if a == b:
print("a = b")
elif a < b:
print("a < b")
elif a > b:
print("a > b")

a = 10
b = 2
if a == b:
print("a = b")
elif a < b:
print("a < b")
else:
print("a > b")

Ошибку не вижу((( код работает, а тренажер выдает ошибку, принты соответственно написаны с пробелами после if elif и else


#38

Здравствуйте.
В вашем решении a < b, а в исходном варианте a <= b. Попробуйте в print именно этот вариант.


#40

Оставьте все как есть, только пробел поставьте после *, а в end оставьте пустую строку.


#42

Получилось, спасибо.