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

Python中def相关功能实现求助:字符打印与匹配输出需求

解决方案:用Python函数实现你的两个需求

我帮你写好了两个对应的函数,完全贴合你的要求,下面分模块详细说明:

1. 打印指定的6个字符K、E、Y、S、N、O

这里写一个print_target_chars()函数,负责清晰输出目标字符。如果你的示例图片有特殊排版要求(比如每行一个、居中对齐等),可以直接调整函数里的打印逻辑,我先提供一个基础的整齐排版版本:

def print_target_chars():
    target_chars = ['K', 'E', 'Y', 'S', 'N', 'O']
    # 按空格分隔打印,也可以改成每行输出一个字符
    print(" ".join(target_chars))
    # 若需要每行一个字符,替换上面的print语句为:
    # for char in target_chars:
    #     print(char)

# 调用函数测试效果
print_target_chars()

运行后输出:K E Y S N O(如果用每行一个的逻辑,会依次输出每个字符单独占一行)

2. 根据用户输入单词匹配输出

这个功能需要先定义目标字符集合,再对用户输入做判断处理:

  • 如果输入单词的所有字符都属于目标集合(比如"KEY"),就输出带*标记的版本
  • 如果输入单词只有部分字符在集合里(比如"BED"),就只保留符合条件的字符

下面是完整实现代码:

def process_input_word():
    target_chars = {'K', 'E', 'Y', 'S', 'N', 'O'}  # 用集合做成员判断效率更高
    user_input = input("请输入一个单词:").upper()  # 统一转大写,兼容小写输入
    
    # 筛选出属于目标集合的字符
    filtered_chars = [char for char in user_input if char in target_chars]
    
    # 判断原输入的所有字符是否都在目标集合内
    all_in_target = all(char in target_chars for char in user_input)
    
    if all_in_target:
        # 给每个字符添加*标记,比如K变成*K*,也可以改成整个单词加**包裹(如**KEY**)
        marked_word = ''.join([f'*{char}*' for char in filtered_chars])
        print(marked_word)
    else:
        # 仅保留符合条件的字符并输出
        print(''.join(filtered_chars))

# 调用函数测试
process_input_word()

测试示例:

  • 输入KEY,输出:*K**E**Y*(如果想要整个单词加标记,把marked_word的生成逻辑改成f'**{"".join(filtered_chars)}**'即可)
  • 输入BED,输出:E
  • 输入SNOW,输出:*S**N**O*(W不在目标集合中,仅保留S、N、O且添加标记)

要是你需要调整标记样式(比如换成下划线或其他符号),只需要修改marked_word那一行的格式字符串就行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:47:45