Python如何从一行输入中分别获取整数与字符串
从一行输入中提取整数和带空格的字符串
这个问题我之前也碰到过,默认的split()方法会把所有空白字符都当作分隔符,自然没法保留后面带空格的文本。不过有几个简单的办法可以完美解决:
方法1:使用split(maxsplit=1)
这是最直接的方案,maxsplit参数可以指定拆分的最大次数。设置为1时,只会在第一个空白处拆分字符串,后面的所有内容都会完整保留:
# 获取输入并去除首尾多余空格 input_line = input().strip() # 只拆分一次,得到两个部分 parts = input_line.split(maxsplit=1) # 第一部分转成整数,第二部分直接保留 number = int(parts[0]) text_content = parts[1] # 测试输出 print(number) # 输出:10 print(text_content) # 输出:I love coding
方法2:使用partition()方法
partition()会把字符串按指定分隔符拆成三个部分:分隔符前的内容、分隔符本身、分隔符后的内容。我们可以用空格作为分隔符,忽略中间的分隔符部分:
input_line = input().strip() # 按第一个空格拆分 num_str, _, text = input_line.partition(' ') number = int(num_str) # 测试输出 print(number) # 输出:10 print(text) # 输出:I love coding
额外提示:增加健壮性
如果需要处理输入不规范的情况(比如开头不是整数),可以加上异常捕获:
try: input_line = input().strip() parts = input_line.split(maxsplit=1) number = int(parts[0]) text_content = parts[1] print("提取成功:", number, text_content) except (ValueError, IndexError): print("输入格式不正确,请确保以整数开头,后跟文本内容")
内容的提问来源于stack exchange,提问作者Divakar Rajesh
相关产品推荐
相关产品推荐

