You need to enable JavaScript to run this app. Python如何拼接字符串避免末尾多余分隔符 密码校验输出问题解决
优惠活动
大模型
产品
解决方案
定价
更多

Python如何拼接字符串避免末尾多余分隔符 密码校验输出问题解决

代码问题说明
  • 末尾多逗号的原因:前三个缺失判断都固定使用end=','打印,只要触发了前三个判断且没有触发特殊字符缺失的判断,末尾就会残留多余逗号
  • 额外存在的两处隐性错误:
    1. 输入变量名s后续被特殊字符缺失的提示字符串覆盖,属于不规范的变量复用
    2. 最终密码合法判断时变量名写错,specialcase不存在,实际定义的变量是special,运行会触发NameError
修正方案

优先将所有需要输出的缺失提示收集到列表中,最终使用字符串的join方法统一拼接,天然不会出现首尾多余分隔符的问题,逻辑更简洁可控。

修正后完整代码:

pwd = input("Create new password: ")
digit = 0
upper = 0
lower = 0
special = 0

for i in pwd:
    ord_i = ord(i)
    if 48 <= ord_i <= 57:
        digit += 1
    elif 65 <= ord_i <= 90:
        upper += 1
    elif 97 <= ord_i <= 122:
        lower += 1
    elif ord_i in (95, 64, 35, 36):
        special += 1

missing = []
if digit == 0:
    missing.append('Digit missing')
if upper == 0:
    missing.append('Uppercase missing')
if lower == 0:
    missing.append('Lowercase missing')
if special == 0:
    missing.append('Special character missing')

if missing:
    print(', '.join(missing))
else:
    print("Password granted")

测试验证:输入测试值kjishdui@时,missing列表为['Digit missing', 'Uppercase missing'],拼接后输出正好符合预期,不会出现多余逗号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 20:54:03