You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用for循环实现字符串变量name猜测的代码问题求助

解决方案

问题根因

你现有代码的逻辑是每次匹配到姓名的单个字符,就立即执行打印操作,因此会分4行输出单个字符,而非拼接成完整姓名后统一输出。

调整方案

你可以先初始化一个空字符串存储逐次匹配到的字符,所有字符匹配完成后再执行打印,修改后的代码如下:

## Guess a name

name = 'Kate'
# 注意原字符集存在笔误:QRZT 修正为 QRST,否则无法匹配大写S字符
char = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
# 初始化存储猜测结果的空字符串
guessed_name = ''

for k in range(len(name)):
    for i in range(len(char)):
        if name[k] == char[i]:
            guessed_name += char[i]

# 所有字符匹配完成后统一打印
print('Your name is ' + guessed_name)

可选优化写法

无需嵌套循环即可实现相同效果,代码更简洁、执行效率更高:

## Guess a name 优化版
name = 'Kate'
char = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
guessed_name = ''.join([c for c in name if c in char])
print(f'Your name is {guessed_name}')

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:09:04