一、Rust println! 宏
基本语法
println! ( "Hello, World!" ) ;
let name = "Alice" ;
let age = 25 ;
println! ( "Name: {}, Age: {}" , name, age) ;
println! ( "{0} is {1} years old. {0} is a programmer." , name, age) ;
println! ( "Name: {name}, Age: {age}" , name = name, age = age) ;
格式化选项
let number = 42 ;
let float = 3.14159 ;
let text = "hello" ;
println! ( "Decimal: {}" , number) ;
println! ( "Hex: {:x}" , number) ;
println! ( "Binary: {:b}" , number) ;
println! ( "Octal: {:o}" , number) ;
println! ( "Float: {}" , float) ;
println! ( "2 decimals: {:.2}" , float) ;
println! ( "Scientific: {:e}" , float) ;
println! ( "Text: {}" , text) ;
println! ( "Right align: {:>10}" , text) ;
println! ( "Left align: {:<10}" , text) ;
println! ( "Center: {:^10}" , text) ;
println! ( "Fill: {:_<10}" , text) ;
println! ( "Pointer: {:p}" , & number) ;
println! ( "Debug: {:?}" , ( number, text) ) ;
println! ( "Pretty debug: {:#?}" , vec! [ 1 , 2 , 3 ] ) ;
错误输出
eprintln! ( "Error: Something went wrong!" ) ;
eprintln! ( "Error value: {}" , 42 ) ;
二、Python print 函数
基本语法
print ( "Hello, World!" )
name = "Alice"
age = 25
print ( "Name:" , name, "Age:" , age)
print ( f"Name: { name} , Age: { age} " )
print ( "Name: {}, Age: {}" . format ( name, age) )
print ( "Name: %s, Age: %d" % ( name, age) )
参数详解
print ( "a" , "b" , "c" )
print ( "a" , "b" , "c" , sep= "-" )
print ( "a" , "b" , "c" , sep= "" )
print ( "Hello" , end= " " )
print ( "World" )
with open ( "output.txt" , "w" ) as f: print ( "Hello File" , file = f)
import time
print ( "Loading" , end= "" , flush= True )
time. sleep( 1 )
print ( "...Done" )
格式化选项
number = 42
float_num = 3.14159
text = "hello"
print ( f"Decimal: { number} " )
print ( f"Hex: { number: x } " )
print ( f"Binary: { number: b } " )
print ( f"Octal: { number: o } " )
print ( f"Float: { float_num} " )
print ( f"2 decimals: { float_num: .2f } " )
print ( f"Scientific: { float_num: e } " )
print ( f"Text: { text} " )
print ( f"Right align: { text: >10 } " )
print ( f"Left align: { text: <10 } " )
print ( f"Center: { text: ^10 } " )
print ( f"Fill: { text: _<10 } " )
big_number = 123456789
print ( f"With commas: { big_number: , } " )
错误输出
import sys
print ( "Error: Something went wrong!" , file = sys. stderr)
sys. stderr. write( "Error message\n" )
三、转义字符列表
通用转义字符转义字符 说明 Rust 示例 Python 示例 \n
换行 println!("Line 1\nLine 2");
print("Line 1\nLine 2")
\t
制表符 println!("Name:\tAlice");
print("Name:\tAlice")
\\
反斜杠 println!("Path: C:\\Windows");
print("Path: C:\\Windows")
\"
双引号 println!("He said: \"Hello\"");
print("He said: \"Hello\"")
\'
单引号 println!("It\'s mine");
print("It\'s mine")
\r
回车 println!("Loading...\rDone");
print("Loading...\rDone")
\0
空字符 println!("End\0of string");
print("End\0of string")
Rust 特有转义字符
println! ( r"C:\Windows\System32" ) ;
println! ( r#"This is amulti-lineraw string
"# ) ;
println! ( "\u{1F600}" ) ;
println! ( "\u{1F47E}" ) ;
println! ( b"Hello" ) ;
Python 特有转义字符
print ( r"C:\Windows\System32" )
print ( """
Line 1
Line 2
Line 3
""" )
print ( "\N{GRINNING FACE}" )
print ( "\U0001F47E" )
print ( "\u03A9" )
print ( "\a" )
print ( "\f" )
print ( "\v" )
四、高级用法对比
Rust 高级输出
use std:: io:: { self , Write } ;
print! ( "Loading..." ) ;
io:: stdout ( ) . flush ( ) . unwrap ( ) ;
std:: thread:: sleep ( std:: time:: Duration :: from_secs ( 1 ) ) ;
println! ( " Done" ) ;
#[derive(Debug)]
struct Person { name: String , age: u32 ,
} let person = Person { name: "Bob" . to_string ( ) , age: 30 } ;
println! ( "{:#?}" , person) ;
use std:: fmt; impl fmt:: Display for Person { fn fmt ( & self , f: & mut fmt:: Formatter ) -> fmt:: Result { write! ( f, "{} ({} years old)" , self . name, self . age) }
} println! ( "{}" , person) ;
Python 高级输出
import json
from dataclasses import dataclass
output = "Hello"
print ( str ( output) )
print ( repr ( output) )
data = { "name" : "Alice" , "age" : 25 }
print ( json. dumps( data, indent= 2 ) )
from dataclasses import dataclass@dataclass
class Person : name: str age: int person = Person( "Bob" , 30 )
print ( person)
import time
for i in range ( 101 ) : print ( f"\rProgress: { i} %" , end= "" , flush= True ) time. sleep( 0.1 )
print ( )
五、性能考虑
Rust 性能优化
use std:: io:: { self , Write } ; let mut output = String :: new ( ) ;
write! ( & mut output, "Hello, {}!" , "world" ) . unwrap ( ) ;
println! ( "{}" , output) ;
let lines = vec! [ "Line 1" , "Line 2" , "Line 3" ] ;
for line in lines { println! ( "{}" , line) ;
}
println! ( "{}" , lines. join ( "\n" ) ) ;
Python 性能优化
lines = [ "Line 1" , "Line 2" , "Line 3" ]
for line in lines: print ( line)
print ( "\n" . join( lines) )
from io import StringIO
output = StringIO( )
output. write( "Hello, " )
output. write( "world!" )
print ( output. getvalue( ) )
六、跨平台注意事项
Rust 跨平台输出
#[cfg(windows)]
const NEWLINE : & str = "\r\n" ; #[cfg(not(windows))]
const NEWLINE : & str = "\n" ; println! ( "Line 1{}Line 2" , NEWLINE ) ;
Python 跨平台输出
import os
print ( "Line 1" , "Line 2" , sep= os. linesep)
print ( "Line 1" )
print ( "Line 2" )
import sys
if sys. stdout. encoding != 'UTF-8' : sys. stdout. reconfigure( encoding= 'utf-8' )
七、总结对比特性 Rust 🦀 Python 🐍 语法 宏:println!()
, print!()
函数:print()
格式化 编译时检查,类型安全 运行时检查,灵活 性能 零成本抽象,高性能 有运行时开销 错误处理 编译时错误检查 运行时异常 灵活性 相对严格 非常灵活 学习曲线 较陡峭 平缓 适用场景 系统编程,高性能应用 脚本,快速开发
选择建议:
选择 Rust :需要高性能、内存安全、系统级输出控制选择 Python :需要快速开发、灵活格式化、简单脚本
关键记忆点:
Rust 使用宏,Python 使用函数 Rust 编译时检查格式化,Python 运行时检查 两者都支持相似的转义字符 Python 有更多输出选项(sep, end, file, flush) Rust 有更好的性能特性