Replit 100天Python挑战代码优化及输出格式问题求助
问题分析与优化方案
问题原因
1. 输出开头出现多余空格
Python的print()函数用逗号分隔多个参数时,默认会在所有参数之间插入空格。你把换行符'\n'作为独立参数传入,导致换行后的内容前自动被添加了空格,比如print(first_name,'\n',date_today)会输出:
Humberto January 19, 2023
(注意第二行开头的空格)
2. 代码效率偏低
- 变量命名混乱(如
txt_output、text_put、fee_ling均为拼写错误或不规范命名),增加维护成本; - 多次将零散字符串作为参数传给
print(),函数内部需多轮字符串拼接与IO操作,效率远低于直接拼接成完整字符串后一次性打印; - 冗余的零散字符串定义,未做统一管理。
优化方案
方案1:用f-string构建完整输出(推荐)
直接拼接所有内容为一个字符串,一次性传给print(),既解决空格问题,又提升效率,同时优化可读性:
first_name = "Humberto" date_today = "January 19, 2023" # 统一变量命名,修正字符串语法错误 line1 = "I am signing up for Replit's 100 days of Python challenge!" line2 = "I will make sure to spend some time every day coding along, for a minimum of 10 minutes a day" line3 = "I'll be using Replit, an amazing online IDE so I can do this from my phone wherever I happen to be. No excuses for not coding from the middle of the field!" feeling = "I am feeling \U0001f600" # 用f-string直接编排完整格式 full_output = f"""{first_name} {date_today} {line1} {line2} {line3} {feeling}""" print(full_output)
方案2:修改print参数取消默认空格
若不想重构字符串,可通过设置print()的sep=''参数取消默认空格,同时调整换行符的位置:
first_name = "Humberto" date_today = "January 19, 2023" text_output = """I am signing up for Replit's 100 day's of Python challenge!""" txt_output = """I will make sure to spend some time every day coding along, for a minimum of 10 minutes a day""" text_put = """I'll be using Replit, an amazing online IDE so I can do this from my phone wherever I happen to be. No excuses for not coding from the middle of the field! """ fee_ling = "I am feeling \U0001f600" # 将换行符附加到前一个参数末尾,同时设置sep=''去除默认空格 print(first_name + '\n', date_today + '\n', text_output + '\n', txt_output + '\n', text_put + '\n', fee_ling, sep='')
额外优化建议
- 统一变量命名规则(如将
fee_ling改为feeling),提升代码可读性; - 修正字符串语法错误:
100 day's应改为100 days(复数无需所有格符号); - 对于多行固定文本,直接用三引号字符串维护完整格式,减少拼接操作。
内容的提问来源于stack exchange,提问作者hcompara hcompara
相关产品推荐
相关产品推荐

