Как вы проверяете, что такое interger после строки в пользовательском вводе python?

#python

Вопрос:

Я работаю над экономической текстовой игрой на python. у пользователя есть свой кошелек и банковский баланс. чтобы пользователь мог внести деньги со своего кошелька в свой банк, я хочу, чтобы он набрал

 pls dep x
 

x-целое число. В моем игровом цикле я опускаю

 if 'pls dep ' in type or 'pls deposit ' in type:
    ?
 

В цикле я определил тип как

 type = input('>  ')
 

и цикл проверяет, вызвал ли игрок какую-либо из команд, выполнив

 if type == 'a command':
 

Проблема у меня в том, что я не знаю, как проверить целое число, введенное после

 pls dep (integer)
 

Чтобы написать словами, я хочу, чтобы это было похоже

 if player called the command 'pls dep ', check what the number is after 'pls dep '
and if player has that much amount of money, subtract the x from their wallet and
Add x to their bank balance.
 

кошелек-это

 player_money = 0
 

а банковский баланс игроков составляет

 player_bank_money = 0
 

Может ли кто-нибудь помочь мне в том, как кодировать(ify) то, что я сказал выше?

Комментарии:

1. Это для бота discord?

2. Разделите ввод на слова ( words = text.split() ). Если слово[0] — «pls», а слово[1] — «dep», то у слова[2] есть ваш номер.

3. @NanthakumarJJ нет, это не так, но на меня повлиял бот данк мемер. я пытаюсь закодировать его в коде visual studio

Ответ №1:

Не используйте встроенные имена в качестве переменных. type это встроенное имя.

Используя .split (то, что сказал Тим Робертс в комментариях):

 command = input('>  ')

if 'pls dep ' in command or 'pls deposit ' in command:
    print(f"You deposited {command.split()[2]}")
 

Использование .strip (Не делайте этого, это не очень хорошее использование strip ):

 command = input('>  ')

if 'pls dep ' in command or 'pls deposit ' in command:
    print(f"You deposited {command.strip('pls dep ').strip('pls deposit ')}")
 

Реализация денежных переменных (окончательный код):

 player_money = 0
player_bank_money = 0

command = input('>  ')

if 'pls dep ' in command or 'pls deposit ' in command:
    dep_money = int(command.split()[2])
    player_money -= dep_money
    player_bank_money  = dep_money
    print(f"You have ${player_money} in your wallet. You have ${player_bank_money} is your bank.")
 

Кроме того, если вы не хотите, чтобы команда учитывала регистр, используйте: command.lower() перед условиями if.

Комментарии:

1. Вы также можете добавить команду. опустите (), чтобы код мог распознать команду, и она не будет чувствительна к регистру

2. Это не очень подходящее использование strip . Явный аргумент используется как набор символов, а не как строка.