def f(*a,b):
print(*a,b)
f(2,b=4)
在交互式界面空行表示函数定义的结束, 所以在函数定义结束之后回车一下, 然后再调用就不会报错了
语法错误啊,
你要明白python是很注意格式的语言,你可以检查下
还没运行当然不报错。Python是静态语言,在shell中能实时反馈结果,在文件中得运行后才知道。给2加个括号()吧
或者~把print里a前面的*去掉
你把print换成return 不会报错,因为交互式默认就打印了,所以你写个函数直接print下面调用就会报错
你确定你的报错了?我运行的没问题啊,你对比看看是不是哪里不一样。
对于Python而言,存储好的脚本文件(Script file)和在Console中的交互式(interactive)命令,执行方式不同。
对于脚本文件,解释器将其当作整个代码块执行,而对于交互性命令行中的每一条命令,解释器将其当作单独的代码块执行。
而Python在执行同一个代码块的初始化对象的命令时,会检查是否其值是否已经存在。所以在你给出的例子中,文件执行时(同一个代码块)会把a、b两个变量指向同一个对象;而在命令行执行时,a、b赋值语句分别被当作两个代码块执行,所以会得到两个不同的对象,因而会判断返回报错了
基础的语法错误啊
会不会是缩进的问题,按alt win l可以自动缩进,我用的几pycharm和idle
仔细看看我这个代码的格式和你的格式不一样的地方,我直接说吧,就是你把函数定义好了之后,没有敲2次回车,交互界面默认把f(2,b=4)也作为函数的一部分,这样的话,不就语法出错了吗,所以函数定义好要敲2次回车,就不会错了。
自己先别着急写,先看看学习,理解后再写