Проблема вывода в 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 золотых знаков 108 108 серебряных знаков 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,210 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. Это — современный язык программирования, работающий на всех распространных операционных системах.
В настоящее время существует две версии языка Python: более старая, но пока ещё более распространненая версия 2 и современная версия 3. Они не вполне совместимы друг с другом: программа, написанная для одной версии языка может оказаться невыполнимой для другой версии. Но в основном обе версии очень похожи.
Мы будем использовать версию 3 данного языка, некоторые из используемых примеров не будут работать с версией 2. Последняя версия языка, доступная в сентябре 2010 года — 3.1.2, именно её необходимо установить дома, скачав данную версию с сайта www.python.org.
Запустить интерпретатор python можно из командной строки:
$ python3
Будьте внимательны — команда python запустит интерпретатор версии 2, с которым мы работать не будем. В системе Windows можно использовать пункт меню “Python (command line)”
Вы увидите примерно следующее приглашение командной строки:
Python 3.1.2 (r312:79147, Jun 12 2010, 15:29:06)
[GCC 4.4.3 20100316 (ALT Linux 4.4.3-alt2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Смело вводите команды и наслаждайтесь результатом. А что можно вводить? Несколько примеров:
>>> 2 + 2
4
>>> 2 ** 100
1267650600228229401496703205376
>>> 'Hello' + 'World'
'HelloWorld'
>>> 'ABC' * 100
'ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC
ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC
ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC
ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC
ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC'
Первая команда вычисляет сумму двух чисел, вторая команда вычисляет 2 в степени 100, третья команда выполняет операцию конкатенации для строк, а четвертая команда печатает строку 'ABC', повторенную 100 раз.
Хотите закончить работу с питоном? Введите команду exit() (именно так, со скобочками, так как это — функция), или нажмите Ctrl+D.
Почему питон не выводит ответ
Python 3 — это современный язык, на котором просто и приятно писать программы.
Для печати значений в Питоне есть функция print(). Внутри круглых скобок через запятую мы пишем то, что хотим вывести. Вот программа, которая делает несколько вычислений:
print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш — это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках
Для ввода данных в программу мы используем функцию input() . Она считывает одну строку.
Вот программа, которая считывает имя пользователя и приветствует его:
Пётр
print('Как вас зовут?') name = input() # считываем строку и кладём её в переменную name print('Здравствуйте, ' + name + '!')
Мы будем писать программы, которые считывают данные, перерабатывают их и выводят какой-то результат. При запуске на компьютере такие программы считывают данные, которые пользователь вводит с клавиатуры, а результат выводят на экран.
Попробуем написать программу, которая считывает два числа и выводит их сумму. Для этого считаем два числа и сохраним их в переменные a и b , пользуясь оператором присваивания = . Слева от оператора присваивания в программах на Питоне ставится имя переменной — например, строка из латинских букв. Справа от оператора присваивания ставится любое выражение. Имя станет указывать на результат вычисления выражения. Проиграйте эту программу и посмотрите на результаты её работы:
a = input() b = input() s = a + b print(s)
Мы видим, что программа выводит 57 , хотя в реальной жизни 5 + 7 будет 12 . Это произошло потому, что Питон в третьей строчке «сложил» две строки, а не два числа. В Питоне две строки складываются так: к первой строке приписывается вторая.
Обратите внимание, что в визуализаторе содержимое переменных a и b заключено в кавычки. Это означает, что в a и b лежат строки, а не числа.
В Питоне все данные называются объектами. Число 2 представляется объектом «число 2», строка 'hello' – это объект «строка 'hello' ».
Каждый объект относится к какому-то типу. Строки хранятся в объектах типа str , целые числа хранятся в объектах типа int , дробные числа (вещественные числа) — в объектах типа float . Тип объекта определяет, какие действия можно делать с объектами этого типа. Например, если в переменных first и second лежат объекты типа int , то их можно перемножить, а если в них лежат объекты типа str , то их перемножить нельзя:
first = 5 second = 7 print(first * second) first = '5' second = '7' print(first * second)
Чтобы преобразовать строку из цифр в целое число, воспользуемся функцией int() . Например, int('23') вернет число 23 .
Вот пример правильной программы, которая считывает два числа и выводит их сумму:
a = int(input()) b = int(input()) s = a + b print(s)
Не выводит результат в VS Code на Python?
search4vowels : Имя "search4vowels" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после
чего повторите попытку.
строка:1 знак:1
+ search4vowels ('wqeruiweyiufie')
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (search4vowels:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
- Вопрос задан 10 февр. 2023
- 899 просмотров
1 комментарий
Простой 1 комментарий