Jupyter Notebook向Python脚本传变量参数失败,如何解决?
Jupyter Notebook传递变量给外部Python脚本的问题解决
问题原因
你当前的写法中,!ipython two_digits.py a b里的a和b会被当作字符串字面量传递给脚本,而不是变量a=3、b=5的实际数值。Jupyter的!魔法命令默认不会解析命令里的变量名,只会原样把字符串"a"、"b"作为参数传给脚本,所以变量传递不生效。
正确传递方法
方法1:用字符串插值({})
在!后的命令里,用大括号包裹变量名,Jupyter会自动替换成变量的实际值:
a = 3 b = 5 !ipython two_digits.py {a} {b}
实际执行的命令等价于ipython two_digits.py 3 5。
方法2:用Jupyter原生的%run魔法命令(更推荐)
%run是Jupyter专门用来运行外部脚本的命令,用$符号引用变量即可传递值:
a = 3 b = 5 %run two_digits.py $a $b
脚本端的参数接收
无论用哪种方法,two_digits.py里都需要通过sys.argv来接收参数,注意参数是字符串类型,需要按需转换类型:
import sys if __name__ == "__main__": # sys.argv[0]是脚本文件名,所以从索引1开始取参数 num1 = int(sys.argv[1]) num2 = int(sys.argv[2]) # 这里写你的处理逻辑,比如打印求和结果 print(num1 + num2)
内容的提问来源于stack exchange,提问作者sudhansu63
相关产品推荐
相关产品推荐

