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

iOS Pythonista 3运行《笨办法学Python3》练习14报错求助

解决Pythonista 3中《笨办法学Python3》练习14的ValueError问题

错误原因

你遇到的ValueError: not enough values to unpack (expected 2, got 1),是因为代码里试图把sys.argv拆成script和user_name两个变量,但在Pythonista中直接运行脚本时,argv只包含脚本文件名这一个元素,没有额外的命令行参数。常规桌面Python环境中,你可以通过python script.py 用户名的方式传递第二个参数,但Pythonista默认不会自动传入。

解决方案

方案1:修改代码用input获取用户名

适配Pythonista的运行逻辑,把依赖命令行参数的部分改成手动输入:

from sys import argv

script = argv[0]
user_name = input("请输入你的名字: ")
prompt = '> '

print(f"Hi {user_name}, I'm the {script} script.")

print("I'd like to ask you a few questions.")

print(f"Do you like me {user_name}?")
likes = input(prompt)

print(f"Where do you live {user_name}?")
lives = input(prompt)

print("What kind of computer do you have?")
computer = input(prompt)

print(f"""
    Alright, so you said {likes} about liking me.
    You live in {lives}.  Not sure where that is.
     And you have a {computer} computer.  Nice.
     """)

方案2:在Pythonista中手动设置命令行参数

如果你想保留原代码逻辑,可以给脚本添加运行参数:

  • 打开脚本后,点击右上角的扳手图标(运行设置)
  • 在「Command Line Arguments」输入框中填写你的用户名(比如小明)
  • 保存设置后重新运行脚本,argv就会包含脚本名和你输入的用户名,代码即可正常执行

方案3:临时添加测试参数快速验证

如果只是想快速测试代码,可以临时给argv补充测试值:

from sys import argv

# 当没有传入足够参数时,手动添加测试用户名
if len(argv) < 2:
    argv.append("测试用户")
script, user_name = argv
prompt = '> '

# 后续代码保持不变...

内容的提问来源于stack exchange,提问作者Zhāng JīngYè

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:55:46