input函数的用法是在程序执行的时候,从标准输入流里读取数据,也就是程序执行到这一步的时候,会在命令行里等你输入一个值。但是你这里直接给出了一个字符串'4',input函数会直接输出它,然后返回一个空字符串给x,但是执行int()方法转换的时候,无法把空字符类型转为整数类型,所以这个时候程序就出错了停止执行,这就是为什么你看到的输出只有一个4,而没有其他的输出值的原因。
最后一行的输出也是错的,你的a列表长度只有3个,但是你却输出了a[4],a[8],a[3],到了这一步也只会抛出一个索引超出的异常,根本不可能得到你想要的结果。
不知道我讲清楚了没有,希望可以帮助到你。
在python中,可以使用内置函数inspect.currentframe()来获取当前执行的调用栈中的帧对象,然后使用帧对象的f_lineno属性来获取当前行号,最后使用print()函数将该行号打印出来。
具体代码类似这样: