Как получить строку и int в качестве ввода в одну строку в Python3? - PullRequest
0 голосов
/ 06 марта 2020

Я видел приведенную ниже ссылку для моего ответа, но все еще не получил ожидаемого ответа.

Если я предоставлю Имя и Номер в одной строке, Python должен взять первое значение в виде строки и второе в виде целого числа.

Ответы [ 4 ]

5 голосов
/ 06 марта 2020
a, b = [int(x) if x.isnumeric() else x for x in input().split()]

Будет преобразовано в int любую часть ввода, если это возможно.

0 голосов
/ 06 марта 2020

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

import re

input_text = "string489234"

re_match = re.match("([^0-9]*) ?([0-9]*)", input_text)

if re_match:
    input_str = re_match.group(1)
    input_int = re_match.group(2)

см .: https://docs.python.org/3/library/re.html

0 голосов
/ 06 марта 2020

Если вы уверены, что у вас есть строка и число, вы можете использовать понимание списка, чтобы получить значения обоих.

x = "Hello 345"

str_value = "".join([s for s in x if s.isalpha()])  # list of alpha characters and join into one string
num_value = int("".join([n for n in x if n.isdigit()]))  # list of numbers converted into an int

print(str_value)
>> Hello

print(num_value)
>> 345
0 голосов
/ 06 марта 2020
s, num = input("Give str and int :\n").split()
num = int(num)
print(s, type(s))
print(num, type(num))

Выход:

Give str and int :
hello 23
hello <class 'str'>
23 <class 'int'>
...