Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 1, 2008 12:32:54

l-i-m-o-n_1
От:
Зарегистрирован: 2008-11-01
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

вот если у меня есть такая функция

def slozhenie(a)
x=input ('slozhenie:')

и

def slozhenie_1(b)
y=input('slozhenie_1:')

мне нужно чтобы фунция представленная нижу могла посчитать цифры введённые в двух предыдущих функция (я думая что она должна выглядеть както так, но выходит ошибка)

def rezultat_slozheniya©
print x+y

P.S. просьба сильно не пинать я только недавно начал
P.S.2 и эта программа на встроенном модуле Tkinter (просто весь код программы я не стал выкладывать)



Офлайн

#2 Ноя. 1, 2008 12:39:31

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

Мило! =)

У каждой фукнции есть вход и выход. Т.е. какие-то переменные, которые ей передаются сверху при ее вызове (они называются аргументы).
И есть некторый результат работы, который она возвращает. Это делается с помощью специального слова return
Вот пример функции, которая складывает 2 числа:

def summa(a, b): #в этих скобочках указываются рагументы функции
return a+b #здесь мы складываем 2 числа и возвращаем резлуьтат
З.ы. не забывай в заголовке функции двоеточие после скобочек.
З.ы.ы. Когда выходит кака-ято ошибка - выкладывай в форум и ее тоже. Мы же не можем знать какая там у тебя ошибка %)



Отредактировано (Ноя. 1, 2008 12:42:38)

Офлайн

#3 Ноя. 1, 2008 13:06:27

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

Еще момент.
Ты пользуешься функцией input
Она предназначена для считывания из командной строки. Зачем тебе тогда Tkinter? =)



Офлайн

#4 Ноя. 1, 2008 13:11:13

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

перехват результата ввода

Да, и помни что переменные объявленные внутри функции (локальные) не будут видны снаружи. Т.е х и у в твоём примере могут использоватся только каждый в своей функции. Для того что бы их использовать нужно их “вернуть” как написал shiza - с помощью return.

Офлайн

#5 Ноя. 1, 2008 13:11:46

l-i-m-o-n_1
От:
Зарегистрирован: 2008-11-01
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

ну тогда скажи чем заменить input?



Офлайн

#6 Ноя. 1, 2008 13:53:09

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

l-i-m-o-n_1
ну тогда скажи чем заменить input?
А ты хочешь чтоб было как?
Всплывающее окошко с полем ввода числа?



Офлайн

#7 Ноя. 1, 2008 14:05:16

l-i-m-o-n_1
От:
Зарегистрирован: 2008-11-01
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

да



Офлайн

#8 Ноя. 1, 2008 14:46:06

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

перехват результата ввода

ээээ… может быть на первых порах стоит поюзать easygui
вот пример из туториала…

from easygui import *
import sys
while 1:
msgbox("Hello, world!")
msg ="What is your favorite flavor?"
title = "Ice Cream Survey"
choices = ["Vanilla", "Chocolate", "Strawberry", "Rocky Road"]
choice = choicebox(msg, title, choices)
могу на Tkinter нужный тебе пример написать, но вряд ли это будет проще для тебя



Офлайн

#9 Ноя. 1, 2008 14:51:00

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

А я рискнул сделать расписать пример.

# -*- coding: UTF-8 -*-
import Tkinter #это нам понадобится для работы
import tkMessageBox #и это нам понадобится для работы

main_Window = Tkinter.Tk() #создаем главное окно

text1 = Tkinter.Entry(main_Window) #создаем первое текстовое поле на главном окне
text1.pack() #размещает текстовое поле

text2 = Tkinter.Entry(main_Window) #создаем второе текстовое поле на главном окне
text2.pack() #размещает текстовое поле

def summ_and_display(): #функция, которая вытаскивает числа из текстовых полей, считает сумму и выводит результат
x = int( text1.get() ) #полчаем текст из первого текстового поля и преобразуем его в целое число
y = int( text2.get() ) #полчаем текст из второго текстового поля и преобразуем его в целое число
sum = x + y
tkMessageBox.showinfo('result', sum) #показываем высплывающее окно с результатом

#создаем кнопку для вычисления и делаем так,
#что при нажатии на нее будет выполняться функция summ_and_display
button = Tkinter.Button(main_Window, text="Calculate", command = summ_and_display)
button.pack() #размещает кнопку

main_Window.mainloop() #запускаем все вышенаписанное работать



Отредактировано (Ноя. 1, 2008 14:52:21)

Офлайн

#10 Ноя. 1, 2008 16:05:08

l-i-m-o-n_1
От:
Зарегистрирован: 2008-11-01
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

перехват результата ввода

shiza, ОГРОМНОЕ тебе спасибо!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version