Поиск:

Ответ в темуСоздание новой темы Создание опроса
> написал программу по обмену валют! 
:(
    Опции темы
RM2010
  Дата 9.3.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: 3
Всего: 2



В учебных целях написал программу по обмену валют, если кому пригодиться в виде пособия - милости прошу!

user posted image

Код

from tkinter import *
import urllib.request

###################################### Подключаемся к нету, узнаём курсы валют! ##################
page = urllib.request.urlopen('https://ib.swedbank.lv/private/d2d/payments/rates/currency')
text = page.read().decode('utf8')
lvl=1
eur=text[text.find('EUR&nbsp')+55:text.find('EUR&nbsp')+62]
usd=text[text.find('USD&nbsp')+61:text.find('USD&nbsp')+68]
rur=text[text.find('RUB&nbsp')+67:text.find('RUB&nbsp')+74]
##################################################################################################


app = Tk() # создаём основное окно
app.title("Currency Calculator")
app.geometry('302x355+600+350')

carselect1 = StringVar() # создаём переменную для выбора валют Nr1
carselect2 = StringVar() # создаём переменную для выбора валют Nr2
carselect1.set('LVL') # валюта Nr1 = LVl
carselect2.set('EUR') # валюта Nr2 = EUR
incar = StringVar() # создаём переменную для ввода суммы валюты Nr1
outcar = StringVar() # создаём переменную для вывода суммы валюты Nr2
incar.set(1) # сумма валюту Nr1 = 1

def calculate():
    try:
        x = int( incar.get() )
        if carselect1.get() == 'LVL': c1 = float(lvl)
        if carselect1.get() == 'EUR': c1 = float(eur)
        if carselect1.get() == 'USD': c1 = float(usd)
        if carselect1.get() == 'RUR': c1 = float(rur)
        if carselect2.get() == 'LVL': c2 = float(lvl)
        if carselect2.get() == 'EUR': c2 = float(eur)
        if carselect2.get() == 'USD': c2 = float(usd)
        if carselect2.get() == 'RUR': c2 = float(rur)
        res = (x*c1)/c2
        print(x,'*',c1,'/',c2,'=',res)
        outcar.set(round(res,4))
    except:
        print("Error, wrong format!")

Entry(app,textvar=incar).grid(row=1, column=1, padx=10, pady=10)
Label(app, text = '=').grid(row=1, column=2)
Entry(app,textvar=outcar).grid(row=1, column=3, padx=10, pady=10)

curlist = ['LVL','EUR','USD','RUR'] 
OptionMenu(app,carselect1,*curlist).grid(row=2, column=1, padx=10, pady=10)
OptionMenu(app,carselect2,*curlist).grid(row=2, column=3, padx=10, pady=10)

Button(app, text = "   Calculate!   ", command = calculate ).grid(row=3, column=1, padx=10, pady=10)

biglist = Listbox ( app  )
biglist.grid(row=4, column=1, padx=10 ,pady=15)
biglist.insert(END, "LVL = "+str(lvl))
biglist.insert(END, "EUR = "+eur)
biglist.insert(END, "USD = "+usd)
biglist.insert(END, "RUR = "+rur)

calculate()

app.mainloop()



Это сообщение отредактировал(а) RM2010 - 9.3.2010, 17:18
PM MAIL   Вверх
wester
Дата 9.3.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 1
Всего: 13



продвинутый вариант:
при запуске программа парсит сайт где опубликованы актуальные курсы валют и записывает в свои данные для расчетов

и сделай что нибудь с GUI : он ужасен

а еще неплохо было бинарник опубликовать - компилировать желания нет

Это сообщение отредактировал(а) wester - 9.3.2010, 21:48
PM MAIL   Вверх
RM2010
Дата 9.3.2010, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: 3
Всего: 2



Цитата
при запуске программа парсит сайт где опубликованы актуальные курсы валют и записывает в свои данные для расчетов


так это уже есть, см. начало кода. smile


Код
page = urllib.request.urlopen('https://ib.swedbank.lv/private/d2d/payments/rates/currency') # забрались на страничку
text = page.read().decode('utf8') # присвоили её содержание переменной text.
lvl=1 # основная валюта = 1 ( та, по отношению к которой идут курсы на страничке )
eur=text[text.find('EUR&nbsp')+55:text.find('EUR&nbsp')+62] # находим в содержании странички информацию о курсе евро, присваиваем переменной eur.
usd=text[text.find('USD&nbsp')+61:text.find('USD&nbsp')+68] # то же для доллара
rur=text[text.find('RUB&nbsp')+67:text.find('RUB&nbsp')+74] # и рубля...


Это сообщение отредактировал(а) RM2010 - 9.3.2010, 21:50
PM MAIL   Вверх
wester
Дата 9.3.2010, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 1
Всего: 13



ага, вижу. извиняюсь за невнимательность smile
тогда хотелось бы что бы она эти данные записывала куда - то. А то интернет отключат за неуплату , а я даже не буду знать сколько долларов поменять что бы оплатить smile
PM MAIL   Вверх
RM2010
Дата 9.3.2010, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: 3
Всего: 2



Готово! smile Какие бы функции еще добавить?

Код

###################################### Подключаемся к нету, узнаём курсы валют! ##################

try:
    lvl=1
    page = urllib.request.urlopen('https://ib.swedbank.lv/private/d2d/payments/rates/currency')
    text = page.read().decode('utf8')
    eur=text[text.find('EUR&nbsp')+55:text.find('EUR&nbsp')+62]
    usd=text[text.find('USD&nbsp')+61:text.find('USD&nbsp')+68]
    rur=text[text.find('RUB&nbsp')+67:text.find('RUB&nbsp')+74]
    print('Exchange rate retrieved! %s EUR, %s USD, %s RUR' % (eur,usd,rur))

    readfile = open("exchrate.txt","w")
    readfile.write("%s\n" % eur )
    readfile.write("%s\n" % usd )
    readfile.write("%s\n" % rur )
    readfile.close()   
    
except:
    try:
        print('Failed to retrieve exchange rate!')
        print('will attempt to read from fime!')
        readfile = open("exchrate.txt") 
        eur = readfile.readline()
        usd = readfile.readline()
        rur = readfile.readline()
    except:
        print('File unavailable!')

##################################################################################################



Это сообщение отредактировал(а) RM2010 - 9.3.2010, 23:42
PM MAIL   Вверх
RM2010
Дата 10.3.2010, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 29.1.2010

Репутация: 3
Всего: 2



Вот и интерфейс в PyQt4 набросал. Пока еще не знаю, как его с кодом в питоне соединить... завтра буду разбираться!

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Тестирование программ"
mr.Anderson

Правила должны соблюдаться всеми без исключения.

  • Темы, в которых будут обнаружены нарушения, будут закрыты или удалены.
  • К пользователям, многократно нарушившим правила, будут применены отдельные санкции.

Для тех, кто создаёт темы:

В данном разделе запрещается размещать программы, которые в той или иной степени могут принести вред потенциальному тестеру программы (например, трояны, вирусы и т.д.)

  • Публикуя ссылку на программу, обязательно проверьте её работоспособность.
  • ОБЯЗАТЕЛЬНО: напишите название программы, а главное - её описание и приведите хотя бы один скриншот. Скриншот по размерам не более 500х500 пикселов, для скриншотов большего размера приводите ссылки на них.
  • Программа, которую Вы даёте на тестирование, должна быть откомпилирована, так как не каждый является программистом, да и мало кто будет ради тестирования устанавливать соответствующий софт.

Для тех, кто тестирует:

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.Anderson.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разное тестирование | Следующая тема »


 




[ Время генерации скрипта: 0.0950 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.