Форум сайта python.su
def info(): print('\nИнформация(info)\nНазвание: console+\nАвтор кода: Xakep321\n') def help(): print('\nhelp\t-\tсписок комманд\ncalc2\t-\tкалькулятор с двумя переменными\nсalc3\t-\tкалькулятор с тремя переменными\ncompar\t-\tсравнение чисел\nexit + (название приложения)\t-\tвыход из среды\ninfo\t-\tинформация\n') def console(): while True: enter=str(input('console > ')) if enter=='help': help() elif enter=='exit console': print('close console') print(exit(0)) elif enter=='calc2': cacl2() elif enter=='calc3': calc3() elif enter=='info': info() elif enter=='compar': compar() else: print('Неверная команда') def cacl2(): print('\n\tКалькулятор с двумя переменными(calc1)') while True: a=input('Первая переменная: ') if a=='exit calc2': print('close calc2') a=str(a) console() break else: a=float(a) b=input('Операция: ') if b=='exit calc2': print('close calc2') console() break c=input('Вторая переменная: ') if c=='exit calc2': print('close calc2') c=str(c) console() break else: c=float(c) if b in ('+','-','*','/','**','//'): if b=='+': print(a,b,c,'=',a+c) elif b=='-': print(a,b,c,'=',a-c) elif b=='*': print(a,b,c,'=',a*c) elif b=='/': print(a,b,c,'=',a/c) elif b=='**': print(a,b,c,'=',a**c) elif b=='//': print(a,b,c,'=',a//c) else: print('Неверная операция') def calc3(): print('\n\tКалькулятор с тремя переменными(calc3)') while True: a=input('Первая переменная: ') if a=='exit calc3': print('close calc3') a=str(a) console() break else: a=float(a) b=input('Операция: ') if b=='exit calc3': print('close calc3') console() break c=input('Вторая переменная: ') if c=='exit calc3': print('close calc3') c=str(c) console() break else: c=float(c) d=input('Операция: ') if d=='exit calc3': print('close calc3') console() break e=input('Третья переменная: ') if e=='exit calc3': print('close calc3') e=str(e) console() break else: e=float(e) if b in ('+','-','*','/','**','//') and d in ('+','-','*','/','**','//'): if b=='+': if d=='+': print(a,b,c,d,e,'=',a+c+e) elif d=='-': print(a,b,c,d,e,'=',a+c-e) elif d=='*': print(a,b,c,d,e,'=',a+c*e) elif d=='/': print(a,b,c,d,e,'=',a+c/e) elif d=='**': print(a,b,c,d,e,'=',a+c**e) elif d=='//': print(a,b,c,d,e,'=',a+c//e) else: print('Неверная операция') elif b=='-': if d=='+': print(a,b,c,d,e,'=',a-c+e) elif d=='-': print(a,b,c,d,e,'=',a-c-e) elif d=='*': print(a,b,c,d,e,'=',a-c*e) elif d=='/': print(a,b,c,d,e,'=',a-c/d) elif d=='**': print(a,b,c,d,e,'=',a-c**e) elif d=='//': print(a,b,c,d,e,'=',a-c//e) else: print('Неверная операция') elif b=='*': if d=='+': print(a,b,c,d,e,'=',a*c+e) elif d=='-': print(a,b,c,d,e,'=',a*c-e) elif d=='*': print(a,b,c,d,e,'=',a*c*e) elif d=='/': print(a,b,c,d,e,'=',a*c/e) elif d=='**': print(a,b,c,d,e,'=',a*c**e) elif d=='//': print(a,b,c,d,e,'=',a*c//e) else: print('Неверная операция') elif b=='/': if d=='+': print(a,b,c,d,e,'=',a/c+e) elif d=='-': print(a,b,c,d,e,'=',a/c-e) elif d=='*': print(a,b,c,d,e,'=',a/c*e) elif d=='/': print(a,b,c,d,e,'=',a/c/e) elif d=='**': print(a,b,c,d,e,'=',a/c**e) elif d=='//': print(a,b,c,d,e,'=',a/c//e) else: print('Неверная операция') elif b=='**': if d=='+': print(a,b,c,d,e,'=',a**c+e) elif d=='-': print(a,b,c,d,e,'=',a**c-e) elif d=='*': print(a,b,c,d,e,'=',a**c*e) elif d=='/': print(a,b,c,d,e,'=',a**c/e) elif d=='**': print(a,b,c,d,e,'=',a**c**e) elif d=='//': print(a,b,c,d,e,'=',a**c//e) else: print('Неверная операция') elif b=='//': if d=='+': print(a,b,c,d,e,'=',a//c+e) elif d=='-': print(a,b,c,d,e,'=',a//c-e) elif d=='*': print(a,b,c,d,e,'=',a//c*e) elif d=='/': print(a,b,c,d,e,'=',a//c/e) elif d=='**': print(a,b,c,d,e,'=',a//c**e) elif d=='//': print(a,b,c,d,e,'=',a//c//e) else: print('Неверная операция') else: print('Неверная операция') def compar(): print('Сравнение числа(ел)(compar)') while True: a=input('Первая переменная: ') if a=='exit compar': print('close compar') a=str(a) console() break else: a=float(a) b=input('Вторая переменная или пробел: ') if b=='exit compar': print('close compar') b=str(b) console() break else: if b!=' ': if b!='': b=float(b) if a>0: print(a,'> 0') elif a<0: print('0 >',a) if b!=' ': if b!='': if a>b: print(a,'>',b) elif a<b: print(a,'<',b) elif a==b: print(a,'=',b) if b>0: print(b,'> 0') elif b<0: print('0 >',b) open=str(input('console > ')) if open=='open': console() elif open=='exit console': print('close console') print(exit(0)) else: print('Неверная команда')
Отредактировано Xakep321 (Фев. 24, 2018 00:27:10)
Прикреплённый файлы:
console+.py (5,8 KБ)
Офлайн
У тебя остались рекурсивные вызовы. Вот эти внутренние вызовы console() - это всё рекурсивные вызовы. От них надо избавиться, замени их на return или break.
Отредактировано py.user.next (Фев. 24, 2018 12:02:13)
Офлайн
уже лучше, но всеравно много копипасты
if b=='+': if d=='+': print(a,b,c,d,e,'=',a+c+e) ............... elif b=='-': if d=='+': print(a,b,c,d,e,'=',a-c+e) ........... и так далее
if enter=='help': help() elif enter=='exit console': print('close console') print(exit(0)) elif enter=='calc2': cacl2() elif enter=='calc3': calc3() elif enter=='info': info() elif enter=='compar': compar() else: print('Неверная команда')
commands - {'exit console':exit, 'calc2':calc2, 'calc3'calc3:, 'info':info,.... ну и тд..} if enter in commands: command = command[enter] command() else: print('Неверная команда')
[code python][/code]
Офлайн
PEHDOMЗдравствуйте,
уже лучше, но всеравно много копипасты
Офлайн
py.user.nextЗдравствуйте,
У тебя остались рекурсивный вызовы. Вот эти внутренние вызовы console() - это всё рекурсивные вызовы. От них надо избавиться, замени их на return или break.
Офлайн
Xakep321Это всё равно нужно изучить. Что изучишь сегодня, будешь знать завтра. Завтра нужно будет учить следующее. Материала много и всё нужно.
но я лишь начал изучать функции и плохо понимаю суть работы return
Отредактировано py.user.next (Фев. 24, 2018 12:05:45)
Офлайн
py.user.nextЯ как раз этим занимаюсь)
Офлайн