python 字符串格式化,输出print

本文介绍了Python中字符串格式化的多种方式,包括基本的格式化符号如%s、%d、%f等,并展示了如何指定宽度和精度,以及使用科学计数法等高级格式化技巧。

转自
https://www.cnblogs.com/Lijcyy/p/9280053.html

syslog.syslog(syslog.ERROR,"%s:%s" %( excclass,message)) (打印多个变量)
python 字符串格式化,输出print

字符串格式化代码:

格式 描述
%% 百分号标记
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)a-f
%X 无符号整数(十六进制大写字符)A-F
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)默认精度为6位
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数

整数不包含精度问题

1.打印字符串  %s

print(“My name is %s” %(“Alfred.Xue”))
#输出效果:
My name is Alfred.Xue
2.打印整数  %d

print(“I am %d years old.” %(25))
#输出效果:
I am 25 years old.
3.打印浮点数  %f

print (“His height is %f m”%(1.70))
#输出效果:
His height is 1.700000 m
4.打印浮点数(指定保留两位小数)  %.2f

print (“His height is %.2f m”%(1.70))
#输出效果:
His height is 1.70 m
5.指定占位符宽度  %8d %8.2f    多个占位符用括号

print (“Name:%10s Age:%8d Height:%8.2f”%(“Alfred”,25,1.70))
#输出效果:
Name: Alfred Age: 25 Height: 1.70
6.指定占位符宽度(左对齐)默认右边对齐,负号代码左边对齐  %-10s  %-8d  %-8.2f

print (“Name:%-10s Age:%-8d Height:%-8.2f”%(“Alfred”,25,1.70))
#输出效果:
Name:Alfred Age:25 Height:1.70
7.指定占位符(只能用0当占位符?) %08d  %08.2f

print (“Name:%-10s Age:%08d Height:%08.2f”%(“Alfred”,25,1.70))
#输出效果:
Name:Alfred Age:00000025 Height:00001.70
8.科学计数法

format(0.0026,’.2e’)
#输出效果:
‘2.60e-03’

练习字符串

#!usr/bin/python3

inputstr = input("请输入字符串")
##!!!!str作为字符串名不建议使用,容易混淆str()函数

print("字符中存在%s个a" % inputstr.count('a'))
print("字符中存在%s个空格" % inputstr.count(' '))
print("字符中第一个字符编码%s\n\n" % ord(inputstr[0]))


inputNum = input("请输入整数")
while not (inputNum.isdigit() and (int(inputNum)>=0 and int(inputNum)<=256)):
    if not inputNum.isdigit():
        inputNum = input("输入的不是数字,请重新输入")
        continue
    if not (int(inputNum)>=0 and int(inputNum)<=256):
        inputNum = input("输入的数字值太大,请重新输入")

print("%s对应的ascii的字符为%s" % (inputNum, chr(int(inputNum))))

"""
if len(inputstr)==0:
    print("没有输入数据!!!!")
    quit()

if inputstr[::] == inputstr[::-1]:
    print("是回文")
else:
    print("不是回文")
"""



"""
print("第一个字符:" + inputstr[0])

#print(inputstr[int(len(inputstr)/2)])
#print(len(inputstr)%2)

if len(inputstr)%2 != 0:
    print("中间第"+str(len(inputstr)//2+1)+"个字符为:"+inputstr[len(inputstr)//2])
##!!!!注意len()/2得到的值为floatelse:
    print("没有中间字符")

print("最后一个字符:"+inputstr[-1])
"""
### Python 字符串格式化输出方法 Python 提供了多种字符串格式化的方式,每种方式都有其特点和适用场景。以下是几种常见的字符串格式化方法及其示例: #### 1. `%` 格式化字符 这是最早的一种字符串格式化方法,在 Python 的早期版本中被广泛使用。通过 `%` 符号可以将变量插入到字符串中的指定位置。 ```python name = "Alice" age = 30 formatted_str = "My name is %s and I am %d years old." % (name, age) print(formatted_str) # 输出: My name is Alice and I am 30 years old. ``` 这种方法简单直观,但在复杂情况下可能会显得不够灵活[^3]。 --- #### 2. `str.format()` 方法 `str.format()` 是一种更为现代的字符串格式化方法,自 Python 2.7 起引入。它允许开发者通过 `{}` 占位符定义模板,并在 `.format()` 方法中传入对应的参数。 基本用法如下: ```python name = "Alice" age = 30 formatted_str = "My name is {} and I am {} years old.".format(name, age) print(formatted_str) # 输出: My name is Alice and I am 30 years old. ``` 还可以通过索引或关键字命名占位符来增强可读性和灵活性: ```python formatted_str_with_index = "{1} is {0} years old.".format(age, name) print(formatted_str_with_index) # 输出: Alice is 30 years old. formatted_str_with_keywords = "Name: {n}, Age: {a}".format(n=name, a=age) print(formatted_str_with_keywords) # 输出: Name: Alice, Age: 30 ``` 这种方式相较于 `%` 更加清晰易懂,适合处理复杂的格式需求[^1]。 --- #### 3. F-string(格式化字符串字面量) F-string 自 Python 3.6 开始引入,是一种简洁高效的字符串格式化工具。它可以将表达式嵌入到字符串中,语法更加直观。 ```python name = "Alice" age = 30 formatted_str = f"My name is {name} and I am {age} years old." print(formatted_str) # 输出: My name is Alice and I am 30 years old. ``` 除了简单的变量替换外,F-string 还支持直接嵌套表达式: ```python price = 49.95 tax_rate = 0.08 total_price = price * (1 + tax_rate) receipt = f"Price: ${price:.2f}\nTax Rate: {tax_rate*100}%\nTotal Price: ${total_price:.2f}" print(receipt) # 输出: # Price: $49.95 # Tax Rate: 8% # Total Price: $53.95 ``` 由于其高效性和易读性,F-string 已成为当前推荐的主要字符串格式化方法[^2]。 --- #### 4. 整数填充与对齐 对于一些特定场合下的格式化需求,比如固定宽度的整数输出或者小数转百分比,也可以利用这些方法完成。 ##### 小数转百分比 ```python percentage = 0.75 formatted_percentage = "%.2f%%" % (percentage * 100) print(formatted_percentage) # 输出: 75.00% # 使用 F-string 实现相同效果 formatted_fstring = f"{percentage * 100:.2f}%" print(formatted_fstring) # 输出: 75.00% ``` ##### 数字补零 ```python for i in range(1, 20): padded_number = "%03d" % i print(padded_number) # 使用 zfill() 方法实现同样功能 padded_number_zfill = str(i).zfill(3) print(padded_number_zfill) ``` --- ### 总结 以上介绍了 Python 中常用的三种字符串格式化方法:`%` 格式化字符、`str.format()` 和 F-string。其中,F-string 因为其简洁性和性能优势逐渐取代其他两种方法,特别是在新项目开发中应优先考虑使用 F-string[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值