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

如何为凯撒密码程序添加外层循环以持续接收输入直至输入为空?

没问题!要让这个凯撒密码程序持续运行直到输入为空,咱们给现有代码套个外层循环就行,顺便还修正了原代码里的一个小变量冲突问题。修改后的代码如下:

key = 5  # 把密钥提到循环外,不用每次重复定义
while True:
    # 获取用户输入,提示语可选,也可以直接用input()
    user_input = input("请输入要加密的文本(直接回车即可退出):")
    # 判断是否为空输入,是空就退出循环
    if not user_input:
        break
    
    encrypted = ""
    # 遍历输入的每个字符,把变量名改成char避免覆盖输入内容
    for char in user_input:
        if char.isupper():
            c_unicode = ord(char)
            c_index = ord(char) - ord("A")
            new_index = (c_index + key) % 26
            new_unicode = new_index + ord("A")
            new_character = chr(new_unicode)
            encrypted += new_character
        # 可选:处理非大写字母的字符,比如直接保留原字符
        else:
            encrypted += char
    
    print("加密结果:", encrypted)

关键修改说明:

  • 外层套了while True无限循环,程序会一直运行直到触发break
  • 把输入变量改成user_input,避免和循环里的字符变量重名(原代码用c同时当输入变量和循环变量,会覆盖输入内容)
  • 通过if not user_input判断空输入:用户直接回车时,输入内容是空字符串,此时执行break退出循环
  • 补充了非大写字母字符的处理逻辑(直接保留原字符),如果不需要可以删掉else块,完全保留原代码只处理大写字母的逻辑也可以

运行后效果:每次输入文本按回车就会输出加密结果,直接回车就结束程序啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:57:30