为何Pythonista输入多行时报错?与VSCode输入行为差异解析
问题原因与解决方案
原因分析
VSCode的终端会逐行处理输入内容,批量粘贴多行文本时,终端会将每行依次分配给对应的input()调用。但Pythonista的输入逻辑不同——它会把你一次性输入的所有多行文本,全部传递给第一个input()函数。
你的代码中,第一个input()本应只读取第一行的5 4,拆分后赋值给n和m。但在Pythonista里,这个input()拿到了全部5行内容,拆分后得到的元素数量远超过2,直接触发了“too many values to unpack (expected 2)”的错误。
解决方案
改用一次性读取全部输入的方式,避免依赖逐行的input()调用,代码示例:
import sys # 读取所有输入并按行拆分 all_lines = sys.stdin.read().splitlines() # 处理第一行的n和m n, m = map(int, all_lines[0].split()) # 处理后续n行生成矩阵 matrix = [list(map(int, line.split())) for line in all_lines[1:n+1]]
如果不想导入sys模块,也可以手动控制输入流程:在Pythonista中先输入第一行5 4并回车,再依次输入后续每行内容,这样每个input()会拿到对应的单行数据,行为就和VSCode一致了,但这种方式在批量输入时效率较低,更推荐上面的批量读取方案。
内容的提问来源于stack exchange,提问作者pedro1798
相关产品推荐
相关产品推荐

