背景:
我想在代码中模拟 int maxNumber = 0;
int previousNumber = 0;
int nextNumber = 1;
System.out.println("How many numbers you want in Fibonacci:");
Scanner scanner = new Scanner(System.in);
maxNumber = scanner.nextInt();
System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
for (int i = 1; i <= maxNumber; ++i)
{
System.out.print(previousNumber+" ");
int sum = previousNumber + nextNumber;
previousNumber = nextNumber;
nextNumber = sum;
}
,python xxx.py < file.txt
会期望xxx.py
,这里user input
重定向到stdin
。
所以我有以下代码来模拟重定向:
try.py:
file.txt
以上在Windows cmd中的运行情况如下:
import sys
f = open('file.txt', 'w')
f.write('"Tom"')
f.write('\n')
f.write('"Jerry"')
f.write('\n')
f.close()
sys.stdin = open('file.txt')
for i in range(2):
val = input()
print('Say hello to: ' + val)
sys.stdin = sys.__stdin__ # restore stdin
问题:
然后,将其粘贴到C:\work>python try.py
Say hello to: Tom
Say hello to: Jerry
,然后单击运行。它仍然给我一个jupyter notebook
,让我输入input text box
的内容。
为什么在input
中运行standard input redirect
时没有效果? jupyter notebook
在执行我们的代码方面做了一些特别的事情吗?以后在Jupyter notebook
中运行代码时,我们可能需要注意什么?请提出建议。
注意::为了清楚起见,我将图片粘贴在此处,代码与Jupyter
中的代码完全相同。