Codingame解题疑问:插入的\n被直接打印而非实现换行
问题解决:输入中的
\n未解析为换行符 你的代码存在两个关键问题导致\n无法正常生效:
- 未正确初始化原始字符串变量
s,漏掉了第一行输入的处理 - 输入中的
\n是字面量字符串,input()不会自动将其转换为换行符,需要手动转义处理
修正后的代码
# 读取初始字符串 s = input() change_count = int(input()) for i in range(change_count): raw_change = input() extract_info = raw_change.split('|') index = int(extract_info[1]) # 解析转义字符,把字面量\n转换成实际换行符 stringToInsert = extract_info[2].encode().decode('unicode-escape') # 直接操作字符串即可,无需额外转列表再join s = s[:index] + stringToInsert + s[index:] # 可选:打印每一步修改结果 print(s) print(s)
关键说明
- 初始化
s:第一行输入是原始字符串Hello world,必须先读取赋值给s,否则代码会报变量未定义错误 - 转义处理:使用
encode().decode('unicode-escape')可以将输入中的字面量转义字符(比如\n、\t等)解析为对应的特殊字符,这样插入的\n就会变成实际的换行符
测试效果
用你提供的输入测试,修正后的代码会输出正确的换行效果,而不是直接打印\n字符。
内容的提问来源于stack exchange,提问作者Amine Fathi
相关产品推荐
相关产品推荐

