Проблема вывода в Python: не выводит сообщение, которое написано в самом конце функции
Добрый день! Пишу программу, которая бы решала нелинейное уравнение методом Ньютона(касательных). Проблема не в реализации данного метода, а в выводе данных. Почему то не выводит сообщение, которое написано в самом конце функции: «Приближенное решение методом ньютона » + str(x1). В чем может быть проблема? Буду рад помощи, так как Python начал изучать недавно. Вот сам код:
import numpy as np a=3 b=20 A=4 eps=0.0000001 N=10 k=3 if a0: x0=a else: x0=b while True and n
Отслеживать
52.3k 11 11 золотых знаков 110 110 серебряных знаков 312 312 бронзовых знаков
задан 13 дек 2017 в 11:55
81 1 1 золотой знак 2 2 серебряных знака 7 7 бронзовых знаков
return x1 срабатывает раньше, поэтому до print() не доходит.
13 дек 2017 в 12:00
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Как уже сказано в комментарии, вы выходите из функции раньше, чем идут функции print .
Необходимо заменить выход из функции на выход из цикла, выполнить вывод значений, вернуть значение.
def newton(a, b, eps): n = 0 if f(a) * d2f(a) > 0: x0 = a else: x0 = b while n
Отслеживать
ответ дан 13 дек 2017 в 12:08
user207200 user207200
5,220 8 8 золотых знаков 23 23 серебряных знака 41 41 бронзовый знак
А лучше принты вообще убрать из функции, ибо мало-ли кто ее переиспользовать будет. return x1, n сделать, а результат выводить после вызова функции
13 дек 2017 в 12:11
@suit вопрос не об этом.
13 дек 2017 в 12:13
@suit, такие сообщения, по-моему лучше оформлять как logging (можно выводить в консоль или файл и настраивать уровень детализации [DEBUG, INFO, WARN, ERROR]. )
13 дек 2017 в 12:54
@MaxU, не соглашусь на счет именно этих сообщений. Логи это логи, а вывод количества итераций вполне может быть результатом, который потребитель ожидает получить не заглядывая в логи. В логи можно положить сообщения типа "iteration 1, do smth. "
Программа не работает. Что делать?
Моя программа не работает! Что делать? В данной статье я постараюсь собрать наиболее частые ошибки начинающих программировать на python 3, а также расскажу, как их исправлять.
Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает.
Причина: после окончания выполнения программы (после выполнения всего кода или при возникновении исключения программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы.
Решение: запускать программу через IDLE или через консоль.
Проблема: Не работает функция input. Пишет SyntaxError.
Пример кода:
File
Причина: Вы запустили Python 2.
Проблема: Где-то увидел простую программу, а она не работает.
Пример кода:
Ошибка:
Причина: Вам подсунули программу на Python 2.
Решение: Прочитать об отличиях Python 2 от Python 3. Переписать её на Python 3. Например, данная программа на Python 3 будет выглядеть так:
Проблема: TypeError: Can't convert 'int' object to str implicitly.
Пример кода:
Причина: Нельзя складывать строку с числом.
Решение: Привести строку к числу с помощью функции int(). Кстати, заметьте, что функция input() всегда возвращает строку!
Проблема: SyntaxError: invalid syntax.
Пример кода:
Ошибка:
Причина: Забыто двоеточие.
Проблема: SyntaxError: invalid syntax.
Пример кода:
Ошибка:
Причина: Забыто равно.
Проблема: NameError: name 'a' is not defined.
Пример кода:
Причина: Переменная "a" не существует. Возможно, вы опечатались в названии или забыли инициализировать её.
Решение: Исправить опечатку.
Проблема: IndentationError: expected an indented block.
Пример кода:
Причина: Нужен отступ.
Проблема: TabError: inconsistent use of tabs and spaces in indentation.
Пример кода:
Ошибка:
Причина: Смешение пробелов и табуляции в отступах.
Решение: Исправить отступы.
Проблема: UnboundLocalError: local variable 'a' referenced before assignment.
Пример кода:
Ошибка:
Причина: Попытка обратиться к локальной переменной, которая ещё не создана.
Проблема: Программа выполнилась, но в файл ничего не записалось / записалось не всё.
Пример кода:
Причина: Не закрыт файл, часть данных могла остаться в буфере.
Проблема: Здесь может быть ваша проблема. Комментарии чуть ниже 🙂
Также вам может быть полезно это описание:
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Почему программа не выводит ничего в командную строку?
Здравствуйте, я очень сильный новичок в Python. Cтолькнулся с такой проблемой, при зацикливании скрипта текст с экрана должен выводиться в консоль в реальном времени, при любом его изменении, но этого не происходит, хотя скрипт работает. Скриншоты делаются с этим проблем нет. Если скрипт не зациклен то текст выводиться один раз и все с этим в порядке.
import time import numpy as np import pyscreenshot as ImageGrab import cv2 import os import pytesseract import re filename = 'Image.png' x = 1 last_time = time.time() while(True): screen = np.array(ImageGrab.grab(bbox=(0, 680, 454, 1007))) #print('loop took <> seconds'.format(time.time()-last_time)) last_time = time.time() #cv2.imshow('window',cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)) cv2.imwrite(filename, screen) x = x + 1 #print(x) #if x == 2: #cv2.destroyAllWindows() #break img = cv2.imread('Image.png') pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' text = pytesseract.image_to_string(img) print(text)
- Вопрос задан более двух лет назад
- 389 просмотров
Комментировать
Решения вопроса 1
Какой вопрос - такой и ответ
Ну так у тебя бесконечный цикл и до вывода текста просто не доходит
я очень сильный новичок
Прекрасно! Надо будет это запомнить
Ответ написан более двух лет назад
Не выводит результат в VS Code на Python?
search4vowels : Имя "search4vowels" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после
чего повторите попытку.
строка:1 знак:1
+ search4vowels ('wqeruiweyiufie')
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (search4vowels:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
- Вопрос задан более года назад
- 1089 просмотров
1 комментарий
Простой 1 комментарий