Python print的2种方式,%s的用法

文章介绍了在Python编程中,如何使用`%s`符号进行字符串格式化输出,以及`format()`函数在配合`print()`函数时的作用。示例展示了在机器学习场景下,从iris数据集中使用`train_test_split`函数分割训练集和测试集的过程,强调了数据预处理在模型训练中的重要性。

python输出语句中,我们常用到“%s”符号。%s作用是将对象传到str()方法中进行处理,输出字符串。例如:

.format() format()函数用来收集其后的位置参数和关键字段参数,并用他们的值填充字符串中的占位符。通常format()函数配合print()函数达到强格式化的输出能力.例子如下:

from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.svm import SVC

iris=load_iris()
X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,random_state=0)

print('Size of training set:{} size of testing set:{}'.format(X_train.shape[0],X_test.shape[0]))

print("Size of training set:%s,size of testing set:%s" %
      (X_train.shape[0], X_test.shape[0]))

out:
Size of training set:112 size of testing set:38
Size of training set:112,size of testing set:38
<think> 我们参考了多个引用源,它们都详细解释了Python中格式化字符串的%运算符用法,特别是%s、%d和%f。 引用[1]提到:%s用于字符串,%d用于整数,%f用于浮点数。并强调了它们用于将不同类型数据嵌入字符串。 引用[2]给出了具体示例,解释了%s是替换字符串,%d是打印整数。 引用[3]和[4]给出了更全面的格式化符号表,包括其他符号如%o(八进制)、%x(十六进制)、%e(科学计数法)等。 根据这些信息,我们可以总结如下: 1. %s:用于格式化字符串,可以将任何对象转换为字符串表示(使用str()函数)。 2. %d:用于格式化有符号十进制整数。如果传入的是浮点数,则会截断为整数(不会四舍五入)?注意:实际上,%d要求传入的是整数或可以转换为整数的对象,如果传入浮点数,它会先被转换为整数(即去掉小数部分)。 3. %f:用于格式化浮点数,默认保留6位小数。可以指定精度,例如%.2f表示保留两位小数。 此外,我们还可以通过一个元组同时格式化多个值。 注意:这种格式化方式有时被称为“旧式字符串格式化”,在Python3中仍然支持,但更推荐使用format()方法或者f-string(Python3.6+)。 下面我们给出具体的示例代码和解释。 </think> ### Python%s、%d、%f的用法详解 在Python中,`%s`、`%d`、`%f`是**旧式字符串格式化**的核心操作符,用于将不同类型的数据嵌入字符串中。 #### 📌 基础用法 ```python # 语法模板 "包含占位符的字符串" % 值 "包含占位符的字符串" % (值1, 值2, ...) ``` #### 🔍 常用占位符详解 1. **`%s` - 字符串格式化** - 适用于所有对象(自动调用`str()`转换) ```python name = "Alice" print("Hello, %s!" % name) # 输出: Hello, Alice! print("Type: %s" % type(name)) # 输出: Type: <class 'str'> ``` 2. **`%d` - 整数格式化** - 仅接受整数或可转换为整数的对象 ```python age = 25 print("Age: %d" % age) # 输出: Age: 25 print("Hex: %d" % 0xFF) # 输出: Hex: 255 ``` 3. **`%f` - 浮点数格式化** - 默认保留6位小数 - 支持精度控制:`%.Nf`(N=小数位数) ```python pi = 3.1415926 print("PI: %f" % pi) # 输出: PI: 3.141593 print("PI: %.2f" % pi) # 输出: PI: 3.14 ``` #### ⚙️ 高级特性 - **多值格式化**(使用元组): ```python print("%s is %d years old. Score: %.1f" % ("Bob", 30, 89.75)) # 输出: Bob is 30 years old. Score: 89.8 ``` - **宽度与对齐**: ```python print("Name: %10s" % "Tom") # 右对齐: "Name: Tom" print("ID: %-10d" % 123) # 左对齐: "ID: 123 " ``` - **字典格式化**: ```python data = {"name": "Eva", "age": 28} print("Name: %(name)s, Age: %(age)d" % data) ``` #### ️ 注意事项 1. **类型匹配**:`%d`要求整型值,若传递字符串会报`TypeError` 2. **现代替代方案**: - `str.format()`方法(Python 2.6+) - **f-string**(Python 3.6+,推荐): ```python print(f"PI: {pi:.2f}") # 输出: PI: 3.14 ``` > 旧式格式化源于C语言的`printf`风格,在遗留代码中常见,但新项目建议使用f-string以获得更好可读性和性能[^1][^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值