使用for循环实现URL编码空格转%20的问题排查求助
代码修复方案
原有代码问题
- 仅在字符为空格时才将内容拼接至结果字符串,非空格字符完全未加入结果,导致输出仅保留替换得到的
%20 - 缺少空格计数逻辑,无法实现「第一个空格不替换,后续空格替换为
%20」的需求
修复后代码
def urlEncode(text): result = '' space_count = 0 for char in text: if char == ' ': space_count += 1 # 第一个空格直接保留,后续空格替换为%20 if space_count == 1: result += char else: result += '%20' else: # 非空格字符直接拼接 result += char return result # 测试用例 print(urlEncode("Lighthouse Labs")) print(urlEncode(" Lighthouse Labs ")) print(urlEncode("blue is greener than purple for sure"))
输出结果
Lighthouse Labs Lighthouse%20Labs%20%20 blue is%20greener%20than%20purple%20for%20sure
内容的提问来源于stack exchange,提问作者Mohammad
相关产品推荐
相关产品推荐

