Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2020, 15:38   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Логические выражения не принято сравнивать с True или False.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.06.2020, 15:44   #12
Kvark82
Пользователь
 
Регистрация: 18.06.2020
Сообщений: 37
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Логические выражения не принято сравнивать с True или False.
А где я сравниваю?
Kvark82 вне форума Ответить с цитированием
Старый 18.06.2020, 15:54   #13
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Небольшое замечание:
Код:
def task_8_2():
    while wall_is_on_the_right()==False :
        if  (wall_is_beneath() == True and  wall_is_above() == False):
            fill_cell()
            move_right()
        else:
            move_right()
И в первых задачах так же.
Так делать не надо. Функция определения стены уже возвращает логическое выражение.
Думаю, что так будет лучше.
Код:
def task_8_2():
    while not wall_is_on_the_right():
        if  (wall_is_beneath() and not wall_is_above()):
            fill_cell()
            move_right()
        else:
            move_right()
PS: Побаловался, понравилось.
BDA экстрасенс!!
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 18.06.2020, 16:03   #14
Kvark82
Пользователь
 
Регистрация: 18.06.2020
Сообщений: 37
По умолчанию

Помогите 9-ю решить. Не могу понять, как условие сформулировать. Если и сверху и снизу, в последней клетке, есть стенки, то тест проходит успешно, но если сверху нет стенки, то - с ошибкой.

Код:
!/usr/bin/python3

from pyrob.api import *


@task
def task_8_2():
    while wall_is_on_the_right()  == False :
        if  (wall_is_beneath() == True and  wall_is_above() == False):
            fill_cell()
            move_right()
        else:
            move_right()

if __name__ == '__main__':
    run_tasks()
Цитата:
Сообщение от ViktorR Посмотреть сообщение
while not wall_is_on_the_right():
if (wall_is_beneath() and not wall_is_above()):
fill_cell()
move_right()
else:
move_right()
Про not я еще не знал. Спасибо.
Но по сути ведь - одно? Просто форма записи не принятая?

Последний раз редактировалось BDA; 18.06.2020 в 19:23.
Kvark82 вне форума Ответить с цитированием
Старый 18.06.2020, 16:11   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Цитата:
Сообщение от Kvark82 Посмотреть сообщение
Просто форма записи не принятая?
Да, но лучше сразу привыкать писать хорошо. А то так можно скатиться до проверки на истину:
Код:
len(str(wall_is_beneath())) == 4
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.06.2020, 16:18   #16
Kvark82
Пользователь
 
Регистрация: 18.06.2020
Сообщений: 37
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
len(str(wall_is_beneath())) == 4
А что тут? Длина строки равна 4? Не пойму, что хотели сказать?
Kvark82 вне форума Ответить с цитированием
Старый 18.06.2020, 16:24   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Ну это способ проверки истинности результата функции wall_is_beneath(). len(str(True)) равен 4, а len(str(False)) равен 5.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.06.2020, 16:26   #18
Kvark82
Пользователь
 
Регистрация: 18.06.2020
Сообщений: 37
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Ну это способ проверки истинности результата функции wall_is_beneath(). len(str(True)) равен 4, а len(str(False)) равен 5.
В смысле, масло масляное получается?
Kvark82 вне форума Ответить с цитированием
Старый 18.06.2020, 16:26   #19
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Цитата:
Про not я еще не знал. Спасибо.
Но по сути ведь - одно? Просто форма записи не принятая?
Ну я тоже ещё много чего не знаю.
Но по сути это не одно и тоже, если смотреть на уровне реализации кода.
Возможно интерпретатор и с оптимизирует, а возможно ...
Вот ещё одна вещь:
В Python всё что не пусто - Истина (True)
Всё что пусто - Лож (False)
Пример
Код:
n = 10
while n:
    print('  ', n)
    n -= 1
или так:
Код:
s = 'Privet Mir'
while s:
    print('  ', s)
    s = s[:-1]
Но это не в тему.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 18.06.2020, 16:32   #20
Kvark82
Пользователь
 
Регистрация: 18.06.2020
Сообщений: 37
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Всё что пусто - Лож (False)
Но

wall_is_beneath()

Аргумент пустой, а по умолчанию - Истина

Блин, и в десятой задачи тоже, что и в 9-й.
Что он хочет в качестве while?

Последний раз редактировалось BDA; 18.06.2020 в 19:23.
Kvark82 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать непроходимые стены NIKOLAYY2 Общие вопросы Delphi 6 10.02.2015 14:51
Парсер для стены в ВК EndoCrinolog PHP 14 15.11.2012 02:44
API ВКонтакте - получить все записи стены MILLIONERR PHP 0 23.09.2012 16:52
GLScene проходимость сквозь стены beygul Помощь студентам 0 10.10.2011 19:12
C# Создание стены и флага(финиш)! ZaVyLoN Общие вопросы .NET 6 23.10.2010 17:23