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

Python项目输入函数失效及专辑名称小写转换问题求助

Hey 👋!咱们逐个解决你的问题:

1. 如何将输入转换为全小写形式

这个很简单,直接给input()的结果调用lower()方法就行,修改后的代码如下:

album = input("Which album would you like to see the songs rated?").lower()

lower()方法会把输入里所有的大写字母转换成小写,非字母字符不会受影响。这么做的好处是后续匹配专辑名称时,不用纠结用户输入的大小写(比如用户输"Nevermind"和"nevermind"都会被统一成小写,和你存储的专辑名保持一致)。

2. 程序无反应直接终止的原因及修复方案

程序没输出就终止,大概率是找不到你输入的专辑对应的数据,或者后续处理歌曲评分的逻辑有问题,常见的情况和解决办法如下:

常见原因1:专辑名称匹配失败

比如你存储专辑数据的字典(假设是favorite_albums)里的键是小写的"nevermind",但用户输入的是"Nevermind"或者"NEVERMIND",没转小写的话就匹配不到对应的专辑,程序的条件判断(比如if album in favorite_albums:)不成立,又没有处理“专辑不存在”的分支,就直接结束了,看起来像“无反应”。

常见原因2:访问歌曲数据时出现未捕获的异常

比如你的专辑数据里某个专辑没有songs这个键,或者你用了错误的方式访问歌曲列表(比如用索引访问字典),导致程序抛出KeyError或者IndexError,但因为没有异常捕获,程序直接崩溃终止(如果是这种情况,你运行程序时应该能看到报错信息,只是可能没注意到)。

修复方案

这里给你一个完整的示例代码,结合了输入转小写、存在性检查和异常处理:

# 假设这是你存储的专辑数据
favorite_albums = {
    "nevermind": {
        "overall_rating": 9.5,
        "songs": {
            "smells like teen spirit": 10,
            "in bloom": 9,
            "come as you are": 9.5
        }
    },
    "dark side of the moon": {
        "overall_rating": 10,
        "songs": {
            "speak to me": 8,
            "breathe": 9.5,
            "time": 10
        }
    }
}

# 获取并转换输入为小写
album = input("Which album would you like to see the songs rated?").lower()

# 检查专辑是否存在
if album in favorite_albums:
    # 尝试获取歌曲评分
    try:
        print(f"\nSong ratings for {album.title()}:")
        for song_name, rating in favorite_albums[album]["songs"].items():
            print(f"- {song_name.title()}: {rating}/10")
    except KeyError:
        print(f"Sorry, {album.title()} doesn't have any song ratings stored yet.")
else:
    print(f"Oops, I don't have any ratings for the album '{album}'.")

这个代码做了这些事情:

  • 统一输入为小写,避免大小写匹配问题
  • 先检查输入的专辑是否在你的数据里,不存在就给用户提示
  • 用try-except捕获可能的键错误,防止程序直接崩溃,同时给用户友好提示

如果你的数据结构和示例不一样,只需要调整favorite_albums的结构和访问歌曲的代码就行,但核心思路是:验证输入有效性 + 处理异常情况 + 给用户明确反馈,这样程序就不会莫名其妙终止了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:23:42