Python格式符说明

格式化输出

例如我想输出 我的名字是xxxx 年龄是xxxx

name = "Lucy"
age = 17
print("我的名字是%s,年龄是%d"%(name, age))

# %[(name)][flags][width][.precision]typecode
# []:可以省略
# (name)
# 表示,根据指定的名称(key),查找对应的值,格式化到字符串当中

1 mathScore = 100
2 englishScore = 96
3 print("我的数学成绩是%d,英文成绩是%d"%(mathScore, englishScore))
4 # 如果我想要把分数颠倒过来,除了下面这种方式还有其他方式吗?
5 print("我的数学成绩是%d,英文成绩是%d"%(englishScore, mathScore))
6 
7 # 可以使用下面这种方式(字典) 借助(name),用法%(name)d
8 print("我的数学成绩是%(es)d,英文成绩是%(ms)d"%({"es": englishScore, "ms": mathScore}))

 

1 # width 表示占用的宽度
2 print("%d" % mathScore)
3 
4 print("%10d" % mathScore)

输出结果::


 flags,表示对齐的方式。默认右对齐
# 空:表示右对齐
# -:表示左对齐
# 空格:''为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。
# 0:表示使用0填充

 1 print("%-10d" % mathScore)
 2 # 无论有多少空格,都只会填充一个空格
 3 print("% d" % mathScore)
 4 
 5 # 使用0填充  当输出时间的时候,我们先设置宽度为2,然后在宽度前面添加0作为填充。如果数字宽度是1位,则用0填充,如果数字宽度是2位,则不进行填充
 6 min = 8
 7 sec = 9
 8 print("%02d:%02d" % (min, sec))
 9 
10 min = 36
11 sec = 59
12 print("%02d:%02d" % (min, sec))

输出结果::


# .precision  .precision表示的是数字小数点后的精度。当数字为整数的时候,使用%d,当数字是小数的时候,使用%f,精确到2位就使用.2,精确到10位就使用.10

1 score = 89.9
2 # 此时只能输出89
3 print("%d" % score)
4 
5 # 此时小数点后面的数字就能输出出来了
6 print("%.1f" % score)
7 
8 # 默认的小数点后面是6位
9 print("%f" % score)

输出结果为:

89
89.9
89.900000

 

# typecode  这个是必填项

# 注意:二进制是0b开头,八进制是0o开头,十六进制是0x开头
#
# i/d:将整数、浮点数转换成十进制表示,并将其格式化到指定位置。
#
# o:将整数、浮点数转换成八进制表示,并将其格式化到指定位置。
#
# x:将整数、浮点数转换成十六进制表示,并将其格式化到指定位置。
#
# e:将整数、浮点数转换成科学计数法表示,并将其格式化到指定位置(小写e)。
#
# E:将整数、浮点数转换成科学计数法表示,并将其格式化到指定位置(小写E)。
#
# f:将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认小数点后保留6位)。
#
# F:将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认小数点后保留6位)。
#
# g:自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位使用科学计数法),并将其格式化到指定位置(如果是科学计数这是e)
#
# G:自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位使用科学计数法),并将其格式化到指定位置(如果是科学计数这是E)
 1 print("将二进制转换成十进制::", end="")
 2 print("%d" % 0b1010)
 3 
 4 print("将八进制转换成十进制::", end="")
 5 print("%d" % 0o10)
 6 
 7 print("将十六进制进制转换成十进制::", end="")
 8 print("%d" % 0x10)
 9 
10 print("将十进制进制进制转换成八进制::", end="")
11 print("%o" % 10)
12 
13 # 科学计数法表示
14 print("%e" % 18889999)
# 2.字符串
#
# s:获取传入对象的_str_方法的返回值,并将其格式化到指定位置。
#
# r:获取传入对象的_repr_方法的返回值,并将其格式化到指定位置。
#
# c:整数:将数字转换成其Unicode对应的,10进制范围0<=i<1114111(python27只支持0-255);字符:将字符添加到指定位置。

# 获取指定数字的Unicode码
print("%c" % 97)

# %:当字符串中存在格式化标志时,需要用%%表示一个百分号。99%
mScore = 99
print("%d%%" % mScore)

# python中百分号格式化是不存在自动将整数转换成二进制表示的方式。
#
# %b是错误的
 

转载于:https://www.cnblogs.com/cxq0017/p/9283665.html

### Python说明符的定义与用法 在 Python 中,说明符主要用于字符串格式化操作。它们通常用于 `%` 运算符或者 `str.format()` 方法中,用来控制如何显示变量的内容。 #### 1. 基本概念 说明符是一种占位符语法,它告诉解释器应该如何处理特定的数据类型并将其转换为字符串形式。常见的说明符有 `%s`, `%d`, `%f` 等[^4]。这些说明符可以指定数据类型的输出方式以及一些额外的参数(如宽度、精度等)。 #### 2. 主要说明符及其作用 以下是几种常用的说明符: - **`%s`**: 表示字符串类型。任何输入都会被转化为字符串。 ```python name = "Alice" print("Hello, %s!" % name) ``` - **`%d` 或 `%i`**: 整数类型。只接受整数值作为输入。 ```python age = 30 print("Age is: %d years old." % age) ``` - **`%f`**: 浮点数类型,默认保留六位小数。可以通过调整格式来改变保留的小数位数。 ```python pi = 3.141592653589793 print("%.2f" % pi) # 输出:3.14 ``` - **`%e` 和 `%E`**: 科学计数法表示浮点数,分别使用 e/E 来代表指数部分。 ```python large_number = 123456789 print("%e" % large_number) # 使用 'e' print("%E" % large_number) # 使用 'E' ``` - **`%o`**: 八进制表示整数。 ```python num_octal = 10 print("Octal representation of %d is %o" % (num_octal, num_octal)) ``` - **`%x` 和 `%X`**: 十六进制表示整数,其中 `%x` 是小写字母而 `%X` 则是大写字母。 ```python hex_num = 255 print("Hexadecimal value of %d is %x (%X)" % (hex_num, hex_num, hex_num)) ``` - **`%%`**: 字面意义上的百分号本身。 ```python rate = 0.05 print("The interest rate is %.2f%%" % (rate * 100)) # 输出 The interest rate is 5.00% ``` #### 3. 自定义格式选项 除了基本的说明符外,还可以通过附加标志进一步定制输出样式。例如设置字段宽度、填充字符或对齐方向等。 - **字段宽度** 如果希望数字占据固定的空间大小,则可以在 `%` 后紧跟一个正整数指明最小宽度。 ```python numbers = [1, 12, 123] for n in numbers: print("|%5d|" % n) # 右对齐,默认补空白格至五位宽 ``` - **零填充** 若要让不足长度的部分由前导零填补而非空格,只需把上述例子中的空间替换为零即可。 ```python id_codes = [7, 42, 89] for code in id_codes: print("ID Code:%04d" % code) # 左侧补齐到四位数 ``` - **负号/加号标记** 对于数值型数据来说,如果想要强制展示其符号状态,可加入 `-/+` 符号修饰。 ```python temps = [-5, 0, 15] for temp in temps: print("+%-+3d°C" % temp) # 显示温度带符号且左对齐三位 ``` #### 4. 结合实际案例分析 考虑如下综合运用场景: ```python data = { 'name': 'Bob', 'age': 25, 'height_cm': 178.5, } output_template = """ Name: %-10s Age: %+3d Height(cm): %.1f """ print(output_template % (data['name'], data['age'], data['height_cm'])) ``` 此脚本利用模板串实现了多条记录的同时打印,并适当设置了每列的最大宽度以便整齐排列。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值