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

Python中如何将用户输入存入tuple?电影预算列表实现求助

问题排查与正确实现

原代码存在的问题

  • 元组不可变:movie_list = () 定义的是元组,元组属于不可变类型,没有append方法,无法动态添加元素,应该用列表存储数据,后续按需转为元组。
  • 错误用print获取输入:title = print("Enter movie: ") 中print仅用于输出提示,返回值是None,获取用户输入必须用input()。
  • 预算未转数值类型:input()返回的是字符串,预算是数值类型,建议转为int或float方便后续计算或比较。
  • append方法使用错误:列表的append只能接收一个参数,需将电影名和预算组成元组后再添加。
  • 字符串方法未调用:.upper是字符串方法,必须加括号.upper()执行,否则得到的是方法对象而非大写字符串。
  • 逻辑判断错误:if user != 'N' and 'Y' 逻辑不成立,应判断输入是否不在('Y', 'N')范围内。

正确实现代码

# 先用列表存储,后续可转为元组
movie_list = []
while True:
    # 获取电影名称
    title = input("Enter movie: ")
    # 校验预算输入,确保是有效数字
    while True:
        try:
            budget = int(input("Enter budget: "))
            break
        except ValueError:
            print("Please enter a valid number for budget.")
    # 将电影名和预算组成元组,添加到列表
    movie_list.append((title, budget))
    
    # 校验用户的继续输入选择
    while True:
        user = input("Would you like to add more movies? (y) or (n): ").upper()
        if user in ('Y', 'N'):
            break
        print("Invalid entry, please re-enter!")
    
    if user == 'N':
        break

# 若最终需要元组格式,执行以下转换
# movie_list = tuple(movie_list)
print(movie_list)

说明

  • 用列表存储元素,因为列表支持动态添加;若最终需要元组格式,最后通过tuple(movie_list)转换即可。
  • 增加了预算输入的合法性校验,避免用户输入非数字内容导致程序报错。
  • 优化了继续输入的判断逻辑,确保用户输入有效选项后才推进流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:35:23