Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/140: Рейтинг темы: голосов - 140, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79

Функция сложение на Python! Через def, while и if

16.06.2016, 09:26. Показов 28163. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой код!

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def print_num(x , y):
    while True:
        if operation == '+':
            result = x + y
            print(result)
            break                                               
        else:
            operation != '+'       
            print('Entre right symbol')
            break
 
result = None
 
a = float(input('a = '))
operation = input('symbol = ')
b = float(input('b = '))
 
print_num(a , b)
Он работает хотя и при запуске выдаёт (One or more files in your project contain errors. Do you want to launch anyway) но при этом все работает корректно

a = 5
symbol = +
b = 5
10.0
Для продолжения нажмите любую клавишу . . .

a = 5
symbol = *
b = 5
Entre right symbol
Для продолжения нажмите любую клавишу . . .

Так вот
1) По чему выдает (One or more files in your project.........) и все равно работает, не могу понять!
2) Как сделать так чтобы после ввода и вывода решения программа не завершалась а, запрашивала пользователя (то бишь меня) ввести цифры заново! и не выдавало (Для продолжения нажмите любую клавишу . . .) после чего окно закрываеться

Решение как таковое писать не нужно, я же все таки учусь! лучше написать что то типо (тебе нужно взят весь код и засунуть в цикл while) что к стати я где-то вычитал может сработать но не могу понять что нужно в условие написать! И какой именно код засунуть в цикл! (весь или только часть)

Перепробовал много вариантов но увы не чего не сработало!
Вроде все функции циклы и т.п. понимаю а, вот последовательность задач не могу в голове упорядочить!
Может и по этому поводу кто что подскажет!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.06.2016, 09:26
Ответы с готовыми решениями:

Python PyGame def draw,def move,def off_screen,def collision
Python pygame За что отвечают эти команды def draw,def move,def off_screen,def collision?

Def python
Почему у меня не выводит сразу ответ? Помогите и скажите где ошибка def Amount(a): a=input() s=a.split() for i in : ...

Переписать def f(x, y, h) из Python в С#
Здравствуйте, помогите пожалуйста перевести код из python в C# def f(x, y, h): if h == 3 and x + y >= 88: return...

25
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
16.06.2016, 10:21
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def print_num(x , y):
    if operation == '+':
        return x + y                                            
    else:    
        return 'Entre right symbol'
    
# пока истина цикл выполняется       
while True:
    # истина если ввод а и b числа. цикл работает
    try: 
        a = float(input('a = '))
        operation = input('symbol = ')
        b = float(input('b = '))
        print (print_num(a , b))
    # если ввод не число   (для выхода жмем любую клавишу)
    except ValueError:
        print ('EXIT')
        break
1
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
16.06.2016, 10:50

1. Что значит вот эта строка:
Цитата Сообщение от JAtisto Посмотреть сообщение
operation != '+'
Убрать! Непонятно, как она вообще пролезла, я бы на месте интерпретатора убил за такое.

2.
Цитата Сообщение от JAtisto Посмотреть сообщение
def print_num(x , y):
* * while True:
* * * * if operation == '+':
Что такое operation с точки зрения области видимости? Непонятно. А, впрочем, понятно - это переменная уровня модуля, по простому говоря - глобалка. Так нельзя делать! Можно в очень-очень редких случаях, о которых ты всё равно пока не знаешь, а пока просто запомни, что нельзя. Операцию в данном случае передавай, как параметр:

Python
1
def print_num(x , y, operation):
1
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
16.06.2016, 11:10  [ТС]
Semen-Semenich, Супер все работает! 10X за ответ! Но мне нужно сделать это без использования
PHP/HTML
1
try: and except ValueError:
так как я их ещё не проходил! Или это не возможно?

Добавлено через 15 минут
dondublon, Спасибо! Буду делать! Стало по попонятнее!
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
16.06.2016, 12:25
Цитата Сообщение от JAtisto Посмотреть сообщение
Но мне нужно сделать это без использования
без проблем

Python
1
2
3
4
5
while True:
    a = float(input('a = '))
    operation = input('symbol = ')
    b = float(input('b = '))
    print (print_num(a , b))
теперь при вводе вместо чисел любых других символов цикл будет завершен с выводом ошибки ввода. можно дописать условия проверки ввода и соответственно выполнять или выход или повтор ввода
И обязательно прими и вникни в все замечания что описал dondublon
1
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
16.06.2016, 13:11  [ТС]
Semen-Semenich, Спасибо! Буду пробовать! Ко всем замечаниям прислушиваюсь! Если честно уроки которые можно нашарить в интернете не дают как раз вот эти исправление, советы, ну грубо говоря работа над ошибками. Что в свою очередь очень тормозит изучение! Так что я очень благодарен что, есть те кто может помочь! 10X!!!

Добавлено через 1 минуту
Кстати, может кто посоветует какие нибудь уроки? Как раз с разбором ошибок!
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
16.06.2016, 13:40
Цитата Сообщение от JAtisto Посмотреть сообщение
посоветует какие нибудь уроки?
http://pythontutor.ru даже с визуализатором. помогает понять как код работает. курс конечно начальный. регистрация дает возможность решать задачи и смотреть эталонные решения при правильном своем
1
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
16.06.2016, 16:58  [ТС]
Semen-Semenich, Спасибо! ТО что надо!
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
16.06.2016, 18:44
JAtisto, То, что надо - это хорошая книга... например Лутц
0
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
17.06.2016, 13:29  [ТС]
Vigi, Отличная книга! Почитаю! 10X!

Добавлено через 18 часов 39 минут
Написал вот такой простенький калькулятор!
правда как советовал dondublon,
Python
1
def print_num(x , y, operation):
понять не смог как это реализовать и сделал так!


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# coding=utf-8
def print_num(x, y):
    """
    :param x:
    :param y:
    :return:
    """
    if plus == '+':
        return x + y
    elif plus == '-':
        return x - y
    elif plus == '*':
        return x * y
    elif plus == '/':
        if y != 0:
            return x / y
        else:
            print('ZeroDivisionError')
            print('this is not symbol')
 
 
 
while True:
    a = int(input('= : '))
    plus = input()
    b = int(input('= : '))
 
    print(print_num(a, b))
    print()
    print('Enter next numbers: ')
    print()
 
else:
    print()
Вроде все корректно работает!
Может у кого будут замечания!

И пару вопросов на будущее!
А, как можно сделать что бы при вводе (например(5) или любого другого числа) строчка автоматом перескакивала на следующею строчку минуя нажатия кнопки "Enter"?
то есть:

= : 5 потом идет нажатие ("Enter")
+ потом идет нажатие ("Enter")
= : 5 потом идет нажатие ("Enter")
10

И как эту конструкцию можно приладить к вот такому виду (5 + 5 = 10) то есть в строчку!

Код можно не писать просто намекнуть! Ну если это не совсем сложно! Так как на данном этапе я знаю только азы! И забевать голову лишней информацией пока не стоит на мой взгляд! Дабы не запутаться в конец! Ну а, если решение можно сделать исходя из моих знаний
Python
1
print, if ,else, elif, for, and def
то я буду очень блогодарен за совет!

К стати Semen-Semenich, огромное спасибо за http://pythontutor.ru очень помогает! я как раз новичок и это в самый раз!!!
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
20.06.2016, 07:52
Цитата Сообщение от JAtisto Посмотреть сообщение
PythonВыделить код
1
def print_num(x , y, operation):
понять не смог как это реализовать и сделал так!
Для начала - скопипастить.
0
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
20.06.2016, 10:00  [ТС]
dondublon, а, при чём тут копи паст ? я функцию то понял просто не понял как её переменить к моему примеру.
0
3 / 3 / 0
Регистрация: 07.03.2016
Сообщений: 34
20.06.2016, 17:38
Цитата Сообщение от JAtisto Посмотреть сообщение
И пару вопросов на будущее!
А, как можно сделать что бы при вводе (например(5) или любого другого числа) строчка автоматом перескакивала на следующею строчку минуя нажатия кнопки "Enter"?
то есть:
И как вы себе это представляете? А если захочется сложить трех-значные числа, а ваша программа после 1го числа уже прыгнет дальше?

Можно сделать так:

Python
1
print(sum(float(x) for x in input().split()))
Пишете первое число, потом пробел, второе число и ENTER - произойдет сложение (знак сложения писать не нужно). Сэкономите пару ENTER'ов.

Цитата Сообщение от JAtisto Посмотреть сообщение
И как эту конструкцию можно приладить к вот такому виду (5 + 5 = 10) то есть в строчку!
В функции print нужно показать все переменные, типа
Python
1
print(a, operation, b, "=", result)
Ну или ваш пример (доработан):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# coding=utf-8
def print_num(x, y):
    """
    :param x:
    :param y:
    :return:
    """
    if plus == '+':
        return x + y
    elif plus == '-':
        return x - y
    elif plus == '*':
        return x * y
    elif plus == '/':
        if y != 0:
            return x / y
        else:
            print('ZeroDivisionError')
            print('this is not symbol')
 
 
 
while True:
    a = int(input('= : '))
    plus = input()
    b = int(input('= : '))
    print(a, plus, b, "=", print_num(a, b))
    print()
    print('Enter next numbers: ')
    print()
0
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
20.06.2016, 17:55  [ТС]
Kruger, Спасибо за ответ! Но я имел ввиду не много не это. Как раз я и хотел что-бы при нажатии на кнопку плюс к примеру она работала как раз как enter.

А, по поводу функции print это просто вывод результата.
= : 25
+
= : 23

25 + 23 = 48

а , я хотел что бы конструкция была не так
= : 25
+
= : 23

а, так

= :25+= :23=48 именно в строчку!

Но спасибо за
Python
1
print(a, operation, b, "=", result)
и за
Python
1
print(sum(float(x) for x in input().split()))
на моём нынешнем уровне знаний питона, любая инфа и совет как воздух требуется!!!
0
3 / 3 / 0
Регистрация: 07.03.2016
Сообщений: 34
21.06.2016, 10:47
Цитата Сообщение от JAtisto Посмотреть сообщение
Но я имел ввиду не много не это. Как раз я и хотел что-бы при нажатии на кнопку плюс к примеру она работала как раз как enter.
Да? А из текста этого не следует.

Цитата Сообщение от JAtisto Посмотреть сообщение
= :25+= :23=48 именно в строчку!
Сомневаюсь, что инпуты в строчку получится выводить. После нажатия ENTER идет перевод строки. Моих скромных знаний недостаточно, да и не могу придумать, зачем такое может понадобиться. Через принт можно как угодно выводить, а через инпут... думаю нет.

Цитата Сообщение от JAtisto Посмотреть сообщение
на моём нынешнем уровне знаний питона, любая инфа и совет как воздух требуется!!!
Книжек накачайте, видео на ютубе посмотрите. Вот хороший ресурс (имхо), учат, как создавать игры, но объясняют все с нуля.

Так же проходят ООП (классы), как с ними работать, где применять и прочее.
Можно выбрать русский язык.
0
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
21.06.2016, 13:37  [ТС]
Kruger, Kruger, Про Enter я и хотел узнать можно или нет! По поводу.
Цитата Сообщение от Kruger Посмотреть сообщение
Да? А из текста этого не следует.
извиняюсь! Испытываю проблемы с логикой пока! А, по поводу литры то её итак уже много, я на вот этом ресурсе сейчас http://pythontutor.ru там тестить можно и проверка есть, но твой тоже посмотрю! Книгу
Цитата Сообщение от Vigi Посмотреть сообщение
книга... например Лутц
начал читать пока думаю хватит! И по математики немного! Слишком много тоже плохо! Без базы хоть какой-то по информатики достаточно сложновато с логикой. Как раз с этим и мучаюсь сейчас. Хотя все с этого начинали!!!
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
21.06.2016, 14:09
Цитата Сообщение от JAtisto Посмотреть сообщение
Хотя все с этого начинали!!!
Нет
0
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 79
21.06.2016, 15:22  [ТС]
oldnewyear, Ну так это еще лучше! Значит вполне реально с нуля самому освоить! Без базовых знаний!
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
21.06.2016, 15:30
Цитата Сообщение от JAtisto Посмотреть сообщение
начал читать пока думаю хватит!
Рановато. Для начала - внести параметр operation в ту функцию. Без этого двигаться дальше ни к чему.
1
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
21.06.2016, 15:34
Цитата Сообщение от JAtisto Посмотреть сообщение
Про Enter я и хотел узнать можно или нет
Вообще говоря возможно (по крайней мере на Windows), но не input'ом конечно, а в данном случае, пожалуй, и не надо
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.06.2016, 15:34
Помогаю со студенческими работами здесь

Не получается продолжить действие (def) в Python sql
Вот код , по каким-то причинами после проверки пользователя в бд он не хочет выполнять следующие действия тип перейти на след

Tkinter и функция def
Здравствуйте, начал осваивать tkinter и решил сделать простую программу для рисования по пикселям. Когда я сделал функции для смены цвета...

Не работает функция def erorr
Здравствуйте , не понимаю почему не работает def erorr , помогите пожалуйста решить проблему import sys op = right_val = 2, 8,...

Зачем нужно def main(), если есть def?
для чего нужно использовать def main(), если есть просто def? чем они отличаются?

Оформить через def
оформить как функции: - вычисление N-го элемента выражения; - вычисление суммы (произведения). from math import * ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка 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 - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru