Ответ:
Объяснение:
8. Эта программа, если ее набрать в компиляторе выведет сообщение о синтаксической ошибке, т.к. символ = в операторе print не заключен в апострофы.
Как исправить — должно быть, например,
print(a,’+’,b,’=’,c, sep=»»)
чтобы на печать выдать 4+5=9
9. print(c,’-‘,b,’=’,a, sep=»»)
так будет напечатано
9-5=4
если нужно, чтобы на конце было двоеточие, то
print(c,’-‘,b,’=’,a,’:’, sep=»»)
напечатает
9-5=4:
10.
1 — под знаком деления
2 — под знаком сложения
3 — под знаком вычитания
4 — под знаком присваивания
8. Что выведет эта программа при а = 4, b = 5 ис = 9? print(‘a’, ‘+b’, =, с)
9. Исправьте ошибки в операторе вывода,
print(‘с’, ‘-b’, Е, а )
чтобы при а = 4, b = 5 и с = 9 программа вывела 9-5=4:
10. Определите порядок действий компьютера при вычислении выражения
(впишите номер выполняемого действия над знаком операции):
a = c+ь — 1 / 2
Ответ:
Объяснение:
8. Эта программа, если ее набрать в компиляторе выведет сообщение о синтаксической ошибке, т.к. символ = в операторе print не заключен в апострофы.
Ошибка сервера в приложении ‘/’.
Описание: На сервере возникла ошибка приложения. Текущая пользовательская настройка ошибок для этого приложения не позволяет удаленно просматривать сведения об ошибке данного приложения (из соображений безопасности). Однако, сведения можно просматривать в браузерах, запущенных на локальном сервере.
Сведения: Для разрешения просмотра сведений данного сообщения об ошибке на локальном сервере создайте тег <customErrors> в файле конфигурации «web.config», который находится в корневом каталоге текущего веб-приложения. В теге <customErrors> следует задать атрибут «mode» со значением «Off».
Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут «defaultRedirect» тега конфигурации <customErrors> приложения таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.
Уроки 26 — 29
§18. Линейные программы
Присвоить значение переменной можно двумя способами. Вопервых, можно записать нужное значение прямо в программе:
Оператор, содержащий символы «:=», — это оператор присваивания, с его помощью присваивают новое значение переменной. Он выполняется так: вычисляется выражение справа от символов «:=», а затем результат записывается в переменную, имя которой указано слева.
Для вывода значения переменной на экран используют тот же оператор вывод (в Паскале — write), который раньше применяли для вывода текста:
Что появится на экране после выполнения программы?
вывод с write (с);
вывод ‘c’ write (‘с’);
Чем различаются эти два оператора вывода?
Что выведет на экран программма?
вывод a write (а);
вывод a write (а);
заменяет значение i на i + 1, т. е. увеличивает значение переменной i на 1.
Что получится, если рассмотреть запись i: = i + 1 как равенство — уравнение относительно переменной i?
Чему будет равно значение переменной i после выполнения оператора i: = i + l, если до этого оно было равно 17?
Чему будут равны значения переменных а и b после выполнения программмы
если вначале они имели значения а = 4 и b = 7?
Очень часто программа хранится как исполняемый файл — готовые к выполнению машинные коды. В этом случае текст программы (исходный код) нам недоступен и в нём ничего нельзя исправить. Для того чтобы пользователь смог как-то поменять исходные данные, программист может предусмотреть их ввод с клавиатуры 1) .
Можно также вводить данные из файла или принимать через компьютерную сеть, но пока мы не будем обсуждать эти довольно сложные способы.
Для ввода данных с клавиатуры используется оператор ввод (в Паскале — read). Например, ввести значение переменной а можно так:
Выполняя эту команду, компьютер ожидает, пока пользователь наберёт значение и введёт его, нажав клавишу Enter. Это значение будет присвоено переменной а, которая указана в операторе ввода.
Если в операторе ввода записаны две переменные:
ввод a, b read(a,b);
то программа ожидает ввода двух чисел (через пробел). Первое из них будет записано в первую переменную (в нашем примере — в переменную а), а второе — во вторую (b).
Приведём полную программу сложения двух чисел:
У этой программы сложения чисел есть два недостатка:
1) перед вводом данных пользователь не знает, что от него требуется (сколько чисел нужно вводить и каких);
2) результат выдается в виде числа, которое означает неизвестно что.
Хотелось бы, чтобы диалог программы с пользователем выглядел так:
Введите два числа: 2 3
С помощью какого оператора можно сделать подсказку для ввода — вывести на экран фразу «Введите два числа:»?
При выводе результата ситуация несколько усложняется, потому что нужно вывести значения трёх переменных и два символа: « + » и «=». Можно выводить их по очереди:
вывод b write (b);
но удобнее объединить все выводимые данные в один список вывода, элементы в котором разделены запятыми:
вывод a, ‘+’, b, ‘=’, с write (a, ‘+’, b, ‘=’, с);
Обратите внимание, что имена переменных записаны без апострофов, а все выводимые символы — в апострофах. Если в списке вывода указано имя переменной а, программа выведет не букву «а», а значение, которое хранится в переменной а.
Что выведет эта программа при а = 4, b = 5 и с = 9?
вывод ‘a’, ‘+b’, =, с write (‘а’, ‘+b’ , =, с);
Исправьте ошибки в операторе вывода:
вывод ‘с’, ‘-b’, =, a write (‘с’, ‘-b’ , =, а);
так чтобы при а = 4, b = 5 и с = 9 программа вывела: 9 — 5 = 4.
В результате мы получаем такую программу:
Здесь можно было бы обойтись и без переменной с, потому что элементом списка вывода может быть арифметическое выражение, которое сразу вычисляется, и на экран выводится его результат:
вывод а, ‘+’, b, ‘=’, a + b write (а, ‘+’, b, ‘=’, а + b);
Следующая страница Арифметические выражения
Cкачать материалы урока
Автор материалов — Лада Борисовна Есакова.
Самая распространенная ошибка, которую нужно найти и исправить – это неправильное использование вложенных условных операторов. Для усложнения поиска возможно неправильное форматирование текста (неправильно поставленные отступы).
Для того, чтобы найти ошибку, нужно поставить в соответствие друг другу все части условного оператора if и else.
Помним, что часть else относится к ближайшему if. При этом наличие части else не обязательно.
Кроме того, часто присутствует ошибка при вводе или выводе. Обязательно нужно проверить, та ли информация выводится на экран.
Особого внимания требует инициализация переменных.
Формат книги не позволяет рассмотреть все основные типы задач 2 части, рассмотрим лишь те, которые встречались на проверочных и экзаменационных работах последних двух лет.
Пример 1.
На обработку поступает положительное целое число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
Бейсик |
Python |
DIM N, DIGIT, SUM AS LONG
INPUT N SUM = 0 WHILE N > 0 DIGIT = N MOD 10 IF DIGIT < 7 THEN SUM = SUM + 1 END IF N = N 10 WEND PRINT DIGIT |
N = int(input())
sum = 0 while N > 0: digit = N % 10 if digit < 7: sum = sum + 1 N = N // 10 print(digit) |
Паскаль |
Алгоритмический язык |
var N, digit, sum: longint;
begin readln(N); sum := 0; while N > 0 do begin digit := N mod 10; if digit < 7 then sum := sum + 1; N := N div 10; end; writeln(digit) end. |
алг
нач цел N, digit, sum ввод N sum := 0 нц пока N > 0 digit := mod(N,10) если digit < 7 то sum := sum + 1 все N := div(N,10) кц вывод digit кон |
Си |
|
#include
int main() { int N, digit, sum; scanf(«%d», &N); sum = 0; while (N > 0) { digit = N % 10; if (digit < 7) sum = sum + 1; N = N / 10; } printf(«%d»,digit); return0; } |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 456.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Решение:
Решение использует запись программы на Паскале. Допускается использование программы на любом из четырёх других языков.
1. Программа выведет число 4.
2. Пример числа, при вводе которого программа выдаёт верный ответ: 835.
Программа работает неправильно из-за неверной выводимой на экран переменной и неверного увеличения суммы. Соответственно, программа будет работать верно, если в числе старшая цифра (крайняя левая) равна сумме цифр, меньших 7.
3. В программе есть две ошибки.
Первая ошибка. Неверное увеличение суммы.
Строка с ошибкой:
sum := sum + 1;
Верное исправление:
sum := sum + digit;
Вторая ошибка. Неверный вывод ответа на экран.
Строка с ошибкой:
writeln(digit)
Верное исправление:
writeln(sum)
Пример 2.
Для заданного положительного вещественного числа A необходимо найти максимальное целое число K, при котором выполняется неравенство
(при K = 0 сумма считается равной 0).
Для решения этой задачи ученик написал такую программу.
Бейсик |
Python |
DIM A, S AS DOUBLE
DIM K AS INTEGER INPUT A K = 1 S = 1 WHILE S < A S = S + 1.0/K K = K + 1 WEND PRINT K END |
a = float(input())
k = 1 s = 1 while s < a: s = s + 1.0/k k = k + 1 print(k) |
Алгоритмический язык |
Паскаль |
алг
нач вещ a, s цел k ввод a k := 1 s := 1 нц пока s<a s := s + 1.0/k k := k + 1 кц вывод k кон |
var a, s: real;
k: integer; begin read(a); k := 1; s := 1; while s<a do begin s := s + 1.0/k; k := k + 1; end; write(k); end. |
Си |
|
#include <stdio.h>
int main(){ double a, s; int k; scanf(«%lf»,&a); k = 1; s = 1; while (s<a) { s = s + 1.0/k; k = k + 1; } printf(«%d», k); return 0; } |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1.2.
2. Приведите пример числа, при вводе которого программа даст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только исправлять ошибочные строки; удалять строки или добавлять новые строки нельзя. Постарайтесь также не внести новые ошибки – за это оценка снижается.
Решение:
Решение использует запись программы на Паскале. Допускается использование программы на других языках.
1. При вводе числа 1.2 программа выведет число 2.
2. Примеры чисел, при вводе которых программа выводит верный ответ: 1.6, 2.05.
Программа содержит две ошибки, одна из которых приводит к увеличению ответа, другая – к уменьшению.
В некоторых случаях эти ошибки компенсируют друг друга, и ответ оказывается правильным. Это происходит, если значение A попадает в один из следующих диапазонов: 1.5 < A < 1.83, 2 < A < 2.08.
3. Программа содержит две ошибки.
1) Неверная инициализация. Начальное значение S должно быть равно нулю.
В приведённом варианте вычисленная сумма оказывается на 1 больше правильного значения.
Строка с ошибкой:
s := 1;
Правильная строка:
s := 0;
2) Неверное определение ответа. Приведённая программа находит не максимальное K, при котором выполняется неравенство, а минимальное, при котором оно не выполняется, то есть увеличивает верное значение на 1.
Кроме того, использованный порядок действий в цикле (увеличение K после увеличения S) приводит к увеличению ещё на 1. Это можно было бы исправить, изменив порядок действий в цикле и уменьшив K после завершения цикла, но эти действия не разрешены по условию задачи.
Поэтому для исправления ошибки можно просто скорректировать значение при выводе.
Строка с ошибкой:
write(k);
Правильная строка:
write(k-2);
Спасибо за то, что пользуйтесь нашими материалами.
Информация на странице «Задача №24. Исправление ошибок в программе.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ.
Чтобы успешно сдать нужные и поступить в высшее учебное заведение или техникум нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
Также вы можете воспользоваться другими статьями из разделов нашего сайта.
Публикация обновлена:
07.06.2023
zerkalo 6 / 6 / 5 Регистрация: 13.02.2016 Сообщений: 147 |
||||
1 |
||||
29.03.2016, 08:25. Показов 5671. Ответов 8 Метки нет (Все метки)
Соственно код
выдаёт ошибку invalid syntax.
0 |
4608 / 2029 / 359 Регистрация: 17.03.2012 Сообщений: 10,086 Записей в блоге: 6 |
|
29.03.2016, 08:47 |
2 |
Поставь PyCharm или другую цивильную IDE.
0 |
2740 / 2339 / 620 Регистрация: 19.03.2012 Сообщений: 8,830 |
|
29.03.2016, 09:10 |
3 |
Или как минимум полный traceback выложи, все экстрасенсы в отпуске.
0 |
6 / 6 / 5 Регистрация: 13.02.2016 Сообщений: 147 |
|
29.03.2016, 09:22 [ТС] |
4 |
File «gen-x», line 7 дописал скобку и букву е в range всё заработало. был сбит указанием traceback-а на «print»
0 |
5889 / 3347 / 1033 Регистрация: 03.11.2009 Сообщений: 9,974 |
|
29.03.2016, 09:59 |
5 |
На счёт IDE, да я пока лучше в gedit потренируюсь потому что?…ммм..ide Вас будет наказывать за ошибки?
0 |
2740 / 2339 / 620 Регистрация: 19.03.2012 Сообщений: 8,830 |
|
29.03.2016, 10:02 |
6 |
На счёт IDE, да я пока лучше в gedit потренируюсь «Тренируйся», все равно потом придет jсоздание, что нет смысла использовать неудобный инструмент
0 |
6 / 6 / 5 Регистрация: 13.02.2016 Сообщений: 147 |
|
29.03.2016, 23:11 [ТС] |
7 |
Да как бы пока я только учусь, вроде без надобности.
0 |
Vigi 628 / 468 / 179 Регистрация: 28.05.2012 Сообщений: 1,400 |
||||
30.03.2016, 06:01 |
8 |
|||
0 |
KSiS 26 / 26 / 16 Регистрация: 03.06.2013 Сообщений: 138 |
||||
31.03.2016, 16:00 |
9 |
|||
«]» — забыли
0 |
Print() – наверное, самая первая команда, с которой сталкивается новичок при изучении Python с нуля. Почти все начинают с вывода на экран простого приветствия и переходят к дальнейшему изучению синтаксиса, функций и методов языка, не задумываясь о дополнительных возможностях print(). Однако в Python 3 эта команда предоставляет доступ к базовой функции вывода данных с присущими ей параметрами и возможностями. Знание этих особенностей позволит оптимизировать вывод данных для каждого конкретного случая.
Содержание
- Преимущества функции print () в Python 3
- Особенности синтаксиса print() в Python 3
- Параметр sep
- Параметр end
- Параметр file
- Параметр flush
- Вывод значений переменных с помощью print()
- Заключение
Преимущества функции print() в Python 3
В третьей версии Python print() входит в базовый набор функций. При выполнении проверки type(print) выводится информация: class ‘builtin_function_or_method‘. Слово builtin указывает на то, что проверяемая функция встроенная.
В Python 3 выводимые объекты (objects) помещают в скобках после слова print. На примере вывода традиционного приветствия это будет выглядеть так:
Для Python 3: print(‘Hello, World!’).
В Python 2 оператор применяется без скобок: print ‘Hello, World!’
Результат в обеих версиях будет одинаковый: Hello, World!
Если во второй версии Python значения после print поместить в скобки, тогда выведен будет кортеж – тип данных, представляющий собой неизменяемый список:
print(1, ‘first’, 2, ‘second’)
(1, ‘ first’, 2, ‘ second ‘)
При попытке убрать скобки после print в третьей версии Python, программа выдаст синтаксическую ошибку.
File "<ipython-input-6-a1fcabcd869c>", line 1 print "Hello, World!" ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello, World!")?
Особенности синтаксиса print() в Python 3
Синтаксис функции print() включает собственно объект или объекты (objects), которые также могут называться значениями (values) или элементами (items), и несколько параметров. То, как именно будут выводиться объекты, определяется четырьмя именованными аргументами: разделителем элементов (sep), строкой, выводимой после всех объектов (end), файлом, куда выводятся данные (file), и параметром, отвечающим за буферизацию вывода (flush).
print(value, ..., sep='', end='n', file=sys.stdout, flush=False)
Вызов функции возможен без указания значений параметров и даже без каких-либо объектов: print(). В этом случае задействованы параметры по умолчанию, и при отсутствии элементов выведется неотображаемый символ пустой строки – фактически, значение параметра end – ‘n‘. Такой вызов, к примеру, можно использовать для вертикального отступа между выводами.
В поток данных записываются все аргументы (объекты), не относящиеся к ключевым словам, преобразованные в строки, разделенные sep и завершаемые end. Аргументы параметров sep и end также имеют строковый тип, они могут не указываться при использовании дефолтных значений.
Параметр sep
Значения всех параметров print описываются в виде аргументов ключевых слов sep, end, file, flush. Если параметр sep не указывается, то применяется его дефолтное значение: sep=’ ‘, и выводимые объекты разделяются пробелами. Пример:
print(1, 2, 3)
1 2 3
В качестве аргумента sep можно указать другое значение, например:
- разделитель отсутствует sep=»;
- вывод с новой строки sep=‘n’;
- или любую строку:
print(1, 2, 3, sep=’слово-разделитель’)
1слово-разделитель2слово-разделитель3
Параметр end
По умолчанию end=’n’, и вывод объектов завершается переходом на новую строку. Замена дефолтного значения другим аргументом, например, end=», приведет к изменению формата выводимых данных:
print(‘one_’, end=»)
print(‘two_’, end=»)
print(‘three’)
one_two_three
Параметр file
Функционал print() поддерживает перенаправление вывода с помощью параметра file, который по умолчанию ссылается на sys.stdout – стандартный вывод. Значение может быть изменено на sys.stdin или sys.stderr. Файловый объект stdin применяется для входных данных, а stderr для отправки подсказок интерпретатора и сообщений об ошибках. С помощью параметра file можно задать вывод в файл. Это могут быть файлы формата .csv или .txt. Возможный вариант записи строки в файл:
fileitem = open(‘printfile.txt’,’a’)
def test(objects):
for element in objects:
print(element, file=fileitem)
fileitem.close()
test([10,9,8,7,6,5,4,3,2,1])
На выходе элементы списка будут записаны в printfile.txt по одному в строке.
Параметр flush
Этот параметр имеет отношение к буферизации потока данных и, поскольку он является логическим, может принимать два значения – True и False. По умолчанию параметр отключен: flush=False. Это означает, что сохранение данных из внутреннего буфера в файл будет происходить только после закрытия файла или после непосредственного вызова flush(). Для сохранения после каждого вызова print() параметру требуется присвоить значение True:
file_flush = open(r’file_flush.txt’, ‘a’)
print(«Запись строки в файл«, file=file_flush, flush=True)
print(«Запись второй строки в файл«, file=file_flush, flush=True)
file_flush.close()
Еще один пример использования параметра flush с помощью модуля time:
В этом случае аргумент True параметра flush позволит выводить числа по одному в три секунды, в то время как по умолчанию все числа были бы выведены на экран по истечении 15 секунд. Чтобы наглядно увидеть действие параметра flush, лучше запустить скрипт в консоли. Дело в том, что при использовании некоторых веб-оболочек, в частности, Jupyter Notebook, программа реализуется иначе (без учета параметра flush).
Вывод значений переменных с помощью print()
При выводе строки, содержащей присвоенное переменной значение, достаточно указать через запятую нужный идентификатор (имя переменной). Тип переменной указывать не следует, поскольку print преобразует данные любого типа в строки. Приведем пример:
a = 0
b = ‘Python from scratch’
print(a,’– число, а‘,b,’– строка.’)
0 – число, а Python from scratch – строка.
Еще один инструмент для передачи значений переменных на вывод – метод format. Print при этом выступает в качестве шаблона, в котором вместо имен переменных в фигурных скобках указываются индексы позиционных аргументов:
a = 0
b = ‘Python from scratch’
print(‘{0} является числом, а {1} – строкой.’.format(a,b))
0 является числом, а Python from scratch – строкой.
Вместо format может быть использован символ %, который работает по тому же принципу заполнителей (в предыдущем примере роль заполнителей выполняли фигурные скобки). В этом случае номера индексов заменяются типом данных, получаемым функцией:
- заполнитель %d применяют для числовых данных;
- заполнитель %s – для строк.
a = 0
b = ‘Python from scratch’
print(‘%d является числом, а %s – строкой.’%(a,b))
0 является числом, а Python from scratch – строкой.
Если вместо заполнителя для целых чисел %d указать %s, функция print преобразует число в строку, и код сработает правильно. Но при замене %s на %d будет выведено сообщение об ошибке, поскольку обратная конвертация не осуществляется.
Заключение
С помощью функции print могут быть реализованы различные варианты вывода данных. Помимо описанных в этой статье способов, существуют и другие возможности применения этого инструмента, которые станут доступны по мере углубления в мир программирования Python.
Оцените качество статьи. Нам важно ваше мнение: