在 Python 中拆分用户的输入

使用 str.split() 方法来拆分来自用户的输入,例如 user_input.split('')。 str.split 方法将在提供的分隔符上拆分字符串,并返回一个包含结果的列表。

from_user = input('Enter two words: ')
print(from_user)  # ?️ 'one two'

# ?️ split with space separator
result = from_user.split(' ')
print(result)  # ?️ ['one', 'two']

first, second = result
print(first)  # ?️ one
print(second)  # ?️ two

我们使用 str.split() 方法来拆分用户输入。

str.split() 方法使用分隔符将字符串拆分为子字符串列表。

该方法有以下 2 个参数:

  • separator 在每次出现分隔符时将字符串拆分为子字符串
  • maxsplit 最多完成最大拆分(可选)

如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。

如果我们需要从用户那里获取数字,请确保将它们转换为整数或浮点数。

from_user = input('Enter two numbers: ')
print(from_user)  # ?️ '5 10'

# ?️ 用空格分隔符分割
result = [int(x) for x in from_user.split(' ')]
print(result)  # ?️ [5, 10]


first, second = result

print(first)  # ?️ 5
print(second)  # ?️ 10

input() 函数总是保证返回一个字符串,即使用户输入了一个数字。

我们可以使用 int() 或 float() 类将字符串转换为数字。

该示例在每个空格上拆分字符串,并使用列表推导来迭代列表并将每个子字符串转换为整数。

列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

当在没有分隔符的情况下调用 str.split() 方法时,它会将连续的空白字符视为单个分隔符。

这对于处理用户在单词或数字之间输入多个空格的情况很有用。

from_user = input('Enter two numbers: ')
print(from_user)  # ?️ '5          10'   ?️ 数字之间有多个空格

# ?️ 用空格分隔符分割
result = [int(x) for x in from_user.split()]
print(result)  # ?️ [5, 10]


first, second = result

print(first)  # ?️ 5
print(second)  # ?️ 10

这种方法还处理字符串以空格开头或结尾的场景。

我们还可以在拆分用户输入时使用任何其他分隔符,它不必是空格。

from_user = input('Enter two numbers: ')
print(from_user)  # ?️ '5,10'

# ?️ 用空格分隔符分割
result = [int(x) for x in list(filter(None, from_user.split(',')))]
print(result)  # ?️ [5, 10]

该示例在每次出现逗号时拆分输入字符串。