@add227

Python Как сделать что бы программа не выходила после выполнения?

Я новичок, Input() пробовал вставить, не помогает. как сделать что бы после выполнения например пункта с вводом цифры 1, можно было вводить цифру 2 и работать дальше с программой?
from SimpleQIWI import *
import sys

TOKEN = input( 'Введите путь к токену : ' )
PHONE = input( 'Введите номер телефона : ' )

GET_TOKEN = open( TOKEN, 'r' ).readline()

api = QApi( token = GET_TOKEN, phone = PHONE)

print( '------------' )
print( '[1] - Посмотреть баланс', '\n[2] - Отправить деньги', '\n[3] - Получить входящие платежи', '\n[4] - Выход' )

user = input( '' )

if user == '1':
	try:
		print( '------------', '\nВаш баланс составляет : ' + str( api.balance ) )

	except Exception:
		print( 'Error\n' + str( sys.exc_info()[ 1 ] ) )

elif user == '2':
	print( '------------', '\n' )
	payee_phone = input( 'Введите номер телефона получателя ( в международном формате + ) : ' )
	payee_amount = input( 'Введите сумму перевода ( в рублях ) : ' )
	payee_comment = input( 'Введите комментарий к переводу ( необязательно ) : ' )

	try:
		api.pay( account = payee_phone, amount = payee_amount, comment = payee_comment )

	except Exception:
		print( 'Error\n' + str( sys.exc_info()[ 1 ] ) )
		print( '\nЕсли вы указали свой номер, то платеж будет невозможен!' ) 

elif user == '3':
	print( '------------\n' )
	print( 'Функция временно не доступна' )

elif user == '4':
	sys.exit()

else:
	print( '\nТакого метода не существует!' )
  • Вопрос задан
  • 382 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
from SimpleQIWI import *
import sys

# TODO: переименовать. Большими буквами именуются обычно константы.
# здесь TOKEN лучше переименовать в token_file_name
TOKEN = input('Введите путь к токену : ')
PHONE = input('Введите номер телефона : ')

# TODO: Обработать ошибку загрузки токена
with open(TOKEN, 'r') as f:
    # TODO: переименовать. get_token - это плохое имя переменной 
    # для хранения токена. Лучше просто token или auth_token
    GET_TOKEN = f.readline()

# TODO: Обработать ошибку некорректного/просроченного токена
api = QApi(token=GET_TOKEN, phone=PHONE)

while True:
    print('------------')
    print('[1] - Посмотреть баланс', '\n[2] - Отправить деньги', '\n[3] - Получить входящие платежи', '\n[4] - Выход')

    user = input()

    if user == '1':
      try:
        print('------------', '\nВаш баланс составляет : ' + str( api.balance ))

      except Exception:
        # TODO: Исследовать классы возможных ошибок 
        # и сделать целевые обработчики на уровне итерации цикла
        # чтобы не перегружать код этой обработкой
        print('Error\n' + str( sys.exc_info()[ 1 ] ))

    elif user == '2':
      print( '------------', '\n')
      # TODO: Сделать словарь с кэшем вводившихся ранее значений
      # чтобы не вводить повторно при ошибках
      payee_phone = input('Введите номер телефона получателя ( в международном формате + ) : ')
      payee_amount = input('Введите сумму перевода ( в рублях ) : ')
      payee_comment = input('Введите комментарий к переводу ( необязательно ) : ')

      try:
        api.pay(account=payee_phone, amount=payee_amount, comment=payee_comment)

      except Exception:
        print( 'Error\n' + str( sys.exc_info()[ 1 ] ) )
        print( '\nЕсли вы указали свой номер, то платеж будет невозможен!' ) 

    elif user == '3':
      print( '------------\n' )
      print( 'Функция временно не доступна' )

    elif user == '4':
      sys.exit()

    else:
      print( '\nТакого метода не существует!' )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@anerev
Использовать цикл while
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы