rust和python打印输出不同

  • 本文关键字:输出 打印 python rust rust
  • 更新时间 :
  • 英文 :


我正在尝试rust,我想为我的计时器创建一行打印。

我想用rust写的Python代码:

from time import sleep
for i in range(61):
print(i, end="r")
sleep(1)

这段代码在一行中打印秒数,从而更新

行的秒数。我试着用rust做这个:

use std::thread::sleep;
use std::time::Duration;
fn main() {
for i in 0..61 {
print!("{}r", i);
sleep(Duration::from_millis(1000));
}
}

Rust脚本不打印任何东西,但是python脚本会打印并更新它:当你运行它

$ python script.py
0

当它运行1秒

$ python script.py
1

当它运行2秒

$ python script.py
0

我试着删除" "从rust代码的一行开始,现在等待60秒,然后在一行中打印从0到61的数字:0123456789...%

我看不出python和rust代码有什么区别

Ruststdout是缓冲的,这意味着如果你不打印换行符并希望它输出一些东西,你需要刷新它。

你可以这样写:

use std::thread::sleep;
use std::time::Duration;
use std::io::{self, Write};
fn main() {
for i in 0..61 {
print!("{}r", i);
match io::stdout().flush() {
Ok(_) => {},
Err(_) => std::process::exit(1)
}
sleep(Duration::from_millis(1000));
}
}

try println

for i in 1..10{
println!("{}",i);
sleep(Duration::from_millis(1000));
}

最新更新