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

AttributeError: 'tuple'对象无'lower'属性 Python中.lower()方法失效原因求解

Python代码报错原因解析

核心报错原因

lower()是Python字符串类型的专属方法,你代码中定义的bird_names是元组类型,元组没有内置的lower()方法,直接对元组调用该方法会抛出AttributeError属性错误,这就是你代码报错的根本原因。

逻辑误区说明

你想实现忽略大小写的鸟名匹配,不能直接对存储多个鸟名字符串的元组统一调用lower(),需要先把元组内的每一个字符串元素单独转换为小写,再做成员判断。

修复方案

你可以提前把所有鸟名统一转换为小写存储,再和输入的小写猜测值做匹配,修改后的代码如下:

# bird names list
bird_names = ("Parrot", "Owl", "Pigeon", "Crow", "Peacock", "Hen")
# 提前把所有鸟名转小写,方便后续匹配
lower_bird_names = tuple(name.lower() for name in bird_names)

# bird guess
bird_guess = input("Enter a bird name (Guess 1): ")

# nested conditions starts here
if bird_guess.lower() in lower_bird_names:
  print("Yes, 1st try!")
else:
  bird_guess = input("Enter a bird name (Guess 2): ")
  if bird_guess.lower() in lower_bird_names:
    print("Yes, 2nd try!")
  else:
    bird_guess = input("Enter a bird name (Guess 3): ")
    if bird_guess.lower() in lower_bird_names:
      print("Yes, 3rd try!")
    else:
      print("Sorry, out of tries.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:06:00