Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163

Как правильно работать с процедурами

10.07.2022, 22:12. Показов 589. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
R = 56
 
def Errs(R):
    R = R+2
    R = R+2
 
Errs(R)
print (R)
input()
Отработав процедура Errs должна была увеличить числово форматное значение переменной R на 4. Но она этого не делала.
Выглядело так как будто не работала строка вызова процедуры Errs(R).
Не могли бы объяснить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2022, 22:12
Ответы с готовыми решениями:

Как работать с процедурами
К примеру, имеется такая процедура: Procedure Vvod_Mas_iz_Edit(Edit : TEdit; var n : integer; var Mas : TIntMas); var s, s1 :...

Как работать с процедурами и меню?
создать массив структур вида: type matem:recoed opred:string; theor:string; end; с процедурами и меню для структур

Как правильно пользоваться процедурами?
Здраствуйте, прошу помощи. У меня есть такая процедура: Public Sub ShowDescText_1() LDesc_1.Visible = True ...

7
34 / 28 / 6
Регистрация: 23.06.2021
Сообщений: 145
11.07.2022, 01:47
Ixmil, print должен быть в самой процедуре
Python
1
2
3
4
5
6
7
8
9
10
11
R = 56
 
 
def Errs(R):
    R = R+2
    R = R+2
 
    print(R)
 
 
Errs(R)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
11.07.2022, 07:42
Цитата Сообщение от Ixmil Посмотреть сообщение
Отработав процедура Errs должна была увеличить числово форматное значение переменной R на 4. Но она этого не делала.
Никому она ничего не должна, советую перечитать:
- области видимости (scope)
- свойства изменяемости объектов (mutability)
1
101 / 97 / 17
Регистрация: 05.08.2021
Сообщений: 475
11.07.2022, 08:28
Процедуры в Паскале, а ваша Errs это функция (точнее, неумелая попытка написать функцию), а не процедура.
Собственно понятия "процедура" в Питоне нет
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,696
Записей в блоге: 14
11.07.2022, 08:44
Ixmil, тебе нужно усвоить тему "Передача параметров по значению и по ссылке".
Цитата Сообщение от Ixmil Посмотреть сообщение
Отработав процедура Errs должна была увеличить числово форматное значение переменной R на 4.
- не должна. Если нужен такой эффект, то есть два способа:


Python
1
2
3
4
5
6
7
8
9
10
R = 56
 
def Errs(R):   # простые переменные передаются по значению
    R = R+2
    R = R+2
    return R
 
R=Errs(R)
print (R)
input()
или

Python
1
2
3
4
5
6
7
8
9
10
R=[56]
 
def Errs(R):   # списки передаются по ссылке
    R[0] = R[0]+2
    R[0] = R[0]+2
    
 
Errs(R)
print (R[0])
input()
Добавлено через 1 минуту
Цитата Сообщение от ResDT Посмотреть сообщение
Ixmil, print должен быть в самой процедуре
- это плохая практика...
1
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
11.07.2022, 08:49
Catstail,
Python
1
2
3
4
5
6
7
8
9
R = 56
 
def Errs(R):
    globals()["R"] = R + 2
    globals()["R"] += 2
 
 
Errs(R)
print(R)
Добавлено через 1 минуту

Не по теме:

Только не бейте...

1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,696
Записей в блоге: 14
11.07.2022, 09:08
Fudthhh, так тоже, конечно, можно...
1
 Аватар для Ixmil
19 / 187 / 0
Регистрация: 17.06.2013
Сообщений: 2,163
11.07.2022, 10:54  [ТС]
Спасибо вам за ваши ответы. Вариант с написанием команды после описания содержимого процедуры
Python
1
return R
Заставляет таки выполнять несколько отдельных инструкций внутри таковой.

Добавлено через 3 минуты
С командой завершающей функцию или процедуру
Python
1
print(R)
Я на деле связываться не хотел. Хотя её часто писали в конце. Но содержимое переменной похоже стиралось внутри всей процедуры и к результату от этого было не протолкнуться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2022, 10:54
Помогаю со студенческими работами здесь

Обработчик не хочет работать с несколькими процедурами
Перейду сразу к делу: При нажатии на кнопку на одной форме я показываю модальную форма которая должна загружать данные по процедурам... ...

Как правильно работать с БД
Visual Studio 2015 VB.NET 4.5.2 + SQL Подскажите плиз след. вопрос: Есть у меня допустим прога(оболочка) для БД. Хочу иметь возможность...

Как правильно работать с Qaction?
Помогите, как правильно работать с Qaction? Добавил свойство checkable : true. Запускаю программу и галочка не ставится Добавлено...

Как правильно работать с перечислениями?
Помогите с перечисленнием типа (enum). Уже кучу всего перчитал, но не могу до конца понять. class parttov: flowerp { public enum...

Как правильно работать с JSON?
Здравствуйте! Подскажите, как правильно обрабатывать JSON в PHP, чтобы избежать монструозных конструкций такого вида: $userName=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru