Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 1, 2018 15:07:33

NickolayM
Зарегистрирован: 2017-12-01
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

.

Здравствуйте! Хотел сделать два конвертера в одном (через выбор, один текстовый, второй в окне)
Но почему-то если я в меню выбираю 2 выдает ошибку, может кто поможет, чтоб все работало?

 menu_type=["'Txt-2,'Gui-1'"]
print(menu_type)
choice=int(input("Please select which calc you want:"))
if choice==1:
    from tkinter import *
app= Tk()
app.geometry("620x420")
f = Frame()
app.title("Calculator")
Label(app, text="Cm:").pack()
numToConvert = Entry(app)
numToConvert.pack(pady=7)
Label(app, text="Kg:").pack()
decNum=Entry(app)
decNum.pack(padx=7)
Label(app, text="Cm2").pack()
secNum =Entry(app)
secNum.pack(pady=10)
def click():
    val =numToConvert.get()
    val = float(numToConvert.get())
    lbl_count["text"] = val /100 
Label(app, text="=").pack()
lbl_count = Label(f, text="0")
lbl_count.pack(padx=7)
btn = Button(f, text="meter", command=click)
btn.pack(side="left",padx=7)
def click_():
    val =numToConvert.get()
    val = float(numToConvert.get())
    lbl_count["text"] = val *10
btn = Button(f, text="millimeter", command=click_)
btn.pack(side="left",padx=7)
def click_l():
    val =numToConvert.get()
    val = float(numToConvert.get())
    lbl_count["text"] = val /10
btn = Button(f, text="Decimeter", command=click_l)
btn.pack(side="left",padx=7)
def click_li():
    val =numToConvert.get()
    val = float(numToConvert.get())
    lbl_count["text"] = val * 1000*100
btn = Button(f, text="kilometer", command=click_li)
btn.pack(side="left",padx=7)
def click_lit():
    val =decNum.get()
    val = float(decNum.get())
    lbl_count["text"] = val * 1000
btn = Button(f, text="gram", command=click_lit)
btn.pack(side="left",padx=7)
def click_lite():
    val =secNum.get()
    val = float(secNum.get())
    lbl_count["text"] = val / 10000
    
btn = Button(f, text="m2", command=click_lite)
btn.pack(side="left",padx=10)
def click_liter():
    val =secNum.get()
    val = float(secNum.get())
    lbl_count["text"] = val / 1000000
    
btn = Button(f, text="km2", command=click_liter)
btn.pack(side="left",padx=10)
f.pack(padx=10, pady=11)
f.mainloop()
if choice==2:
    kilometers_length=[" 'm' , 'cm'"]
    meters_length=["'cm', 'km'"]
    centimeters_length=["'m' , 'km'"]
####################################
def km_m():
     print(leng1*100, "meters")
def km_cm():
     print(leng1*100000, "centimeters")
####################################
def m_cm():
     print(leng2*100, "centimeters")
def m_km():
     print(leng2/1000, "kilometers")
####################################
def cm_m():
     print(leng3/100,  "meters")
def cm_km():
     print(leng3/100000,  "kilometers")
ans = 'y'
menu_type=["'Length-1'"]
while ans == 'y':
    ###################################
    
    print(menu_type)
    measure=int(input("Please select what you would like to convert by typing a number:"))
    if measure==1:
         print("Kilometers-Meters-Centimeters - 1\n")
         print("Meters-Kilometers-Centimeters - 2\n")
         print("Centimeters-Meters-Kilometers - 3\n")
         choice=int(input("Choose a conversion by typing a number: "))
    ###################################
    if choice== 1:
             print("Please choose the measurement you want to use.\n")
             print(kilometers_length)
             distance =input("Type an option from the menu: ")
             if distance=="m":
                 leng1=int(input("Please enter a number to convert: "))
                 print(km_m())
             elif distance=="cm":
                 leng1=int(input("Please enter a number to convert: "))
                 print(km_cm())
             else:
                 print("Invalid Entry")
    #################################################################################
    if choice== 2:
             print("Please choose the measurement you want to use.\n")
             print(meters_length)
             distance2 =input("Type an option from the menu: ")
             if distance2=="cm":
                 leng2=int(input("Please enter a number to convert: "))
                 print(m_cm())
             elif distance2=="km":
                 leng2=int(input("Please enter a number to convert: "))
                 print(m_km())
             else:
                 print("Invalid Entry")
    #################################################################################
    if choice== 3:
             print("Please choose the measurement you want to use.\n")
             print(centimeters_length)
             distance =input("Type an option from the menu: ")
             if distance=="m":
                 leng3=int(input("Please enter a number to convert: "))
                 print(cm_m())
             elif distance=="km":
                 leng3=int(input("Please enter a number to convert: "))
                 print(cm_km())
             else:
                 print("Invalid Entry")
    ans = input('Calc again? Type "y" if yes,  or any for quit program:')

Офлайн

#2 Янв. 1, 2018 16:12:08

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

.

ты для начала изучи для чего отступы в питоне как оформляется код в условиях if затем напиши отдельно работающий код для Gui-1 и отдельно для Txt-2 а потом размести их в соответствующих условиях или функциях

 from tkinter import *
print("Txt-2,Gui-1")
select = int(input("Please select which calc you want:"))
if select == 1:
   '''тут пошел весь код
     твоего Gui-1
     приложения, главное
     правильно расположенные
     отступы !!!! '''
if select == 2:
     '''тут пошел весь код
        твоего Txt-2
        приложения, главное
        правильно расположенные
        отступы !!!! '''

Отредактировано marvellik (Янв. 1, 2018 16:12:48)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version