Python:多输入字符串无首尾空格的正确拼接方法咨询
解决输入内容空格分隔且首尾无多余空格的问题
嘿,我来帮你搞定这个小问题~你遇到的开头多余空格,本质是因为初始的b是空字符串,第一次拼接的时候会凭空多出一个前缀空格。下面给你两种简单的解决办法,还顺便修复了原代码里的一个小bug哦:
方法1:用列表收集输入,最后一次性拼接(推荐)
这种方法不仅能完美避免首尾空格,而且在Python里效率更高(因为字符串是不可变对象,反复拼接会生成新对象,用列表append更划算):
# 初始化一个空列表来存所有输入 input_list = [] while True: s = input("enter smtg: ") # 注意:input返回的是字符串,所以要和"-99"比较,原代码的s == -99永远不会触发终止! if s == "-99": break input_list.append(s) # 用空格把列表里的元素拼接成字符串,自动处理好分隔,首尾无空格 print(' '.join(input_list))
方法2:判断初始状态再拼接字符串
如果坚持要用字符串直接拼接,可以通过判断b是否为空来决定要不要加前缀空格:
b = '' while True: s = input("enter smtg: ") if s == "-99": break if not b: # 如果b是空的,直接赋值第一个输入 b = s else: # 非空的话,先加空格再加新内容 b += ' ' + s print(b)
关键提示
原代码里有个隐藏bug:input()函数返回的是字符串类型,所以if s == -99:永远不会成立,循环根本停不下来!一定要改成和字符串"-99"比较才行哦。
内容的提问来源于stack exchange,提问作者prem prakash
相关产品推荐
相关产品推荐

