如何获取输入并将其拆分为字符串和整数拆分为 XXX、YYY



首先感谢我征服学习Python,非常新手的问题。 我想从用户那里获取输入,所以显然我使用

userinput = input("INFO: Enter the user intput: ")

我希望用户输入类似 Dogs123456 的内容, 如何删除字符串"狗"并将 123 和 456 转换为它们自己单独的可用变量。 因此,允许我只用数字而不是输入的文本来创建一些东西。所以我想将文本后输入的任何数字分成两个变量,x 将是格式为 XXX 的前 3 个数字,y 将是 YYY 格式的后三个数字。基本上。

例如:例如 192.XXX.YYY.02 或出于其他原因我想如何格式化它。

编辑:

理想情况下,我更愿意拆分输入,以便为了学习而将数字以 2 或 3 为一组放在变量中。因此,用户将再次输入类似ABC123456的内容,我想删除该输入,ABC - 因为我知道他们将在 ABC 中输入,只需获取 XXX、YYY 并存储这些值以供重用......我希望我已经稍微解释了一下。 所以我比以这种方式重用代码

"192." + XXX + YYY + ".21"

XXX 将变为 123 和 YYY 456,我希望了解如何从原始字符串中获取这些数字并将其转换为可重用的东西。谢谢。

正如@pm980的回答所指出的那样,如果你知道确切的位置,那么你就可以开始了。但是,如果您对输入一无所知怎么办?幸运的是,有正则表达式和Pythonre模块。使用findall,您可以找到匹配的所有字符串。然后你可以join它们,用它做任何你想做的事情。因此,导入re并创建您的正则表达式:

import re
numRegex = re.compile(r'd+')

此正则表达式匹配任何无符号数字。现在,从字符串中取出数字:

numbers = numRegex.findall(userInput)

现在join它们,所以像Dog12s345这样的东西将解析为12345(对空格和句点有用(:

number = ''.join(numbers)

我们完成了!请记住,number仍然是一根字符串 - 我不知道您想如何拆分它。如果您要求它并提供确切的解释,我也会添加它。

我不知道这是否正是您想要的,因为这个问题有点不清楚。但是,如果您事先知道输入的长度并且知道您想要字符串的哪些部分,则可以继续将其拆分为多个部分。例如在下面。

userinput = input("INFO: Enter the user intput: ")
final_output = "192.{}.{}.21".format(userinput[3:6], userinput[6:9])
print(final_output)

我输入

ABC123456

它打印

192.123.456.21

我所做的是把你的字符串从位置 3 带到位置 6,这是前三个数字是 123,然后是位置 6 到 9,即 456,你可以用它来取你需要的任何部分。

最新更新