You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Python 3:如何处理带空格变量并多行打印去空格后的内容?

解决带空格变量的打印问题

嘿,别担心!新手刚接触编程遇到语法错误太正常啦,我来帮你把这个问题理顺~

首先,你的需求很清晰:给变量赋值一个前后带空格的名字,然后输出四行Adam(也就是把空格去掉后的结果)。咱们先看你原来代码里的问题,再给出正确的写法。

你原来代码的错误原因

你写的print(name\n\tname.lstrip()\n\tname.rstrip()\n\tname.strip())会触发语法错误,主要是这两个问题:

  • 转义字符\n\t必须放在字符串内部,不能直接跟变量混写,Python根本识别不了这种写法
  • 如果你想在print里同时输出多个内容,要么用逗号分隔,要么把它们拼接成一个完整的字符串,不能直接像那样连在一起

正确的几种实现方式

方式1:多次调用print(最直观,适合新手)

这种方法每行调用一次print,直接输出处理后的变量:

# 给变量赋值前后带空格的字符串
name = " Adam "
# 分别打印去除左边空格、右边空格、两边空格的结果,再加一次两边空格的结果凑够四行
print(name.lstrip())
print(name.rstrip())
print(name.strip())
print(name.strip())

方式2:用一个print输出多行(通过换行符拼接)

把四个处理后的结果用换行符\n拼接成一个字符串,一次性传给print:

name = " Adam "
# 用f-string把四个结果拼接成带换行的字符串
print(f"{name.lstrip()}\n{name.rstrip()}\n{name.strip()}\n{name.strip()}")

方式3:用列表+print的sep参数(更灵活)

把要输出的内容放到列表里,然后用*解包列表,再通过sep='\n'指定每行输出一个元素:

name = " Adam "
# 把四个处理后的结果存入列表
outputs = [name.lstrip(), name.rstrip(), name.strip(), name.strip()]
# 解包列表,用换行分隔每个元素
print(*outputs, sep='\n')

补充说明

  • name.lstrip():只移除字符串左边的所有空白字符(包括空格、制表符等)
  • name.rstrip():只移除字符串右边的所有空白字符
  • name.strip():移除字符串左右两边的所有空白字符
    因为你的原字符串是" Adam "(前后都有空格),所以这三个方法处理后都会得到"Adam",所以四次输出就是四行你想要的结果啦~

慢慢来,编程的语法细节多练几次就熟练啦!

内容的提问来源于stack exchange,提问作者ElkOnurb

火山引擎 最新活动