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

修复Python键盘单行单词校验列表返回错误True/False的问题

原代码错误说明

  • 仅定义了键盘第一行的字母列表,未覆盖第二、第三行字母,无法匹配跨行场景
  • 未处理大小写问题:输入单词为大写时,和小写的字母列表无法匹配
  • 核心判断逻辑错误:ele.split()会将单个单词转为仅包含该单词的列表,和字母列表做<=比较属于完全错误的语法,无法判断单词字母是否属于目标行
  • 未实现「同一行」的判断逻辑,仅错误比对了第一行字母
  • 输出为字符串格式的'True'/'False',不符合布尔值输出的要求

修复后代码

# 定义键盘三行字母的集合
row1 = set('qwertyuiop')
row2 = set('asdfghjkl')
row3 = set('zxcvbnm')

try:
    N = int(input("enter number of elements: "))
except ValueError:
    print("Invalid Input")
    exit()

if N < 0:
    print("Invalid Input")
else:
    words = input("enter the words separated by a space: ").split()
    if len(words) < N:
        print("Input words not enough")
        exit()
    final = []
    # 取前N个单词做校验
    for word in words[:N]:
        # 统一转小写消除大小写影响
        word_chars = set(word.lower())
        # 判断所有字母是否属于任意同一行键盘
        if word_chars.issubset(row1) or word_chars.issubset(row2) or word_chars.issubset(row3):
            final.append(True)
        else:
            final.append(False)
    print(final)

输入示例参数N=3,输入单词为POTTER EQUITY LIRIL时,输出为[True, True, False],符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:45:04