【Python零基础入门篇 · 6】:占位符和格式化输入输出、标识符和保留字

本文详细介绍了Python中的格式化输入输出方法,包括%s、%d、%f等占位符的使用,以及如何通过format()函数进行更灵活的字符串格式化。同时,文章还讲解了标识符的规则和保留字的使用,帮助读者更好地理解和遵循Python的命名规范。

占位符和格式化输入输出


占位符

占位符作用
%s字符串
%d整数
%4d整数,数字设置位数,不足前面补空白
%f浮点数
%.4f设置小数位数,四舍五入,
%%输出%

格式化输入输出

格式化 — f

在这里插入图片描述

%s 字符串、%d 整型、%f 浮点型

在这里插入图片描述

format():使用{}来替代%

在这里插入图片描述

format()的位置匹配和数字填充
  • 不带编号
    在这里插入图片描述

  • 带数字编号,可调换顺序
    在这里插入图片描述

  • 带关键字–取别名
    在这里插入图片描述

位数填充

0>3d : 向左填充
0<3d : 向右填充
在这里插入图片描述

标识符和保留字


标识符

标识符:变量、函数、类、模块和其他对象的起的名字

标识符的规则:

  • 只能以字母、数字、下划线组成
  • 不能以数字开头
  • 不能是保留字
  • 严格区分大小写

保留字

保留字:有一些单词被python赋予了特定的意义,这些单词在给你对象起名字的时候都不能用

在python中查看保留字

导入模块:import keywrod

在这里插入图片描述

<think>我们需要在命令行输出数字时使用4位占位符,以保证数字对齐(即每个数字占据4个字符宽度,不足的用空格填充,超过的按实际输出但可能破坏对齐)。我们可以使用`printf`命令来实现,因为`printf`支持格式化输出。 根据引用[2]中的标志,我们可以使用以下格式: - `%4d`:表示将整数输出为至少4个字符宽,右对齐(不足左边补空格) - `%-4d`:表示左对齐(不足右边补空格) - `%04d`:表示右对齐,不足用0填充(注意,这里用户要求的是用空格填充,所以不用0) 用户要求的是4位占位符,即每个数字占4个字符宽度,右对齐(默认)且用空格填充。 例如,数字1输出为“ 1”(三个空格加一个1),数字123输出为“ 123”(一个空格加123),而数字12345则输出为“12345”(因为宽度超过4,所以按实际输出,但这样会破坏对齐,所以要注意数字范围)。 在Shell中,我们可以这样使用: ```bash printf "%4d\n" 1 printf "%4d\n" 12 printf "%4d\n" 123 printf "%4d\n" 1234 printf "%4d\n" 12345 ``` 输出: ``` 1 12 123 1234 12345 ``` 注意:如果数字超过4位,会按实际输出,所以如果数字可能超过4位,我们需要考虑使用更大的宽度或者对数字进行截断(但用户要求4位占位符,所以我们假设数字在0到9999之间)。 如果我们要输出多个数字,可以循环处理,例如: ```bash numbers=(1 12 123 1234 12345) for num in "${numbers[@]}"; do printf "%4d\n" $num done ``` 但是,如果数字是小数,我们需要使用浮点数的格式。不过用户没有说明是整数还是浮点数,我们先假设是整数。 如果用户需要左对齐,则使用`%-4d`,例如: ```bash printf "%-4d\n" 1 # 输出"1 " ``` 另外,引用[1]中提到了在Python中使用f-string进行格式化,但用户是在命令行中,所以主要使用`printf`。 因此,在Shell脚本中,我们推荐使用`printf`命令,并指定宽度为4的格式。 总结:在命令行中,使用`printf "%4d" <数字>`可以输出4位占位符(右对齐空格填充),使用`printf "%-4d" <数字>`可以左对齐。 如果用户需要处理浮点数,可以使用`%4.2f`这样的格式,例如保留两位小数且总宽度为4(包括小数点小数部分)。但用户没有说明,所以先按整数处理。 注意:`printf`在Shell中是内置命令,所以使用起来很高效。 示例脚本(输出一个数字列表,每个数字占4位): ```bash #!/bin/bash # 定义一组数字 nums=(5 42 365 1000 9999 10000) # 使用循环输出,每个数字占4位,右对齐 echo "右对齐:" for n in "${nums[@]}"; do printf "%4d\n" $n done # 左对齐 echo "左对齐:" for n in "${nums[@]}"; do printf "%-4d\n" $n done ``` 输出: ``` 右对齐: 5 42 365 1000 9999 10000 左对齐: 5 42 365 1000 9999 10000 ``` 注意:数字10000超过了4位,所以按实际输出,导致右对齐时没有空格,左对齐时也没有空格,因此破坏了表格对齐。所以,如果数字可能超过4位,我们需要考虑增加宽度或处理超长情况。 如果用户希望数字始终占4位,即使超过4位也不换行,那么可以设置固定宽度为4,但超过部分会被截断?实际上,printf不会截断整数,所以我们需要在格式化之前检查数字位数,或者使用字符串截取。但这样比较复杂,通常我们根据实际需求选择足够大的宽度。 因此,如果用户希望所有数字都占4位,那么必须确保数字在0到9999之间。如果超出,要么调整宽度,要么接受不对齐。 如果用户希望用4个字符来显示任意数字,可能需要用科学计数法或其他方式,但这已经超出占位符对齐的范畴。 所以,回答用户:使用`printf "%4d"`可以输出4位占位符(右对齐空格填充),但需注意数字范围在0~9999之间以保证对齐。 相关问题: 1. 如何在Shell脚本中格式化输出浮点数? 2. 如何让printf在数字超过指定宽度时自动换行? 3. 在Shell脚本中如何实现表格对齐输出?</think>在命令行输出中使用4位占位符保证数字对齐,可以使用 `printf` 命令实现精确的格式化输出。以下是几种常用方法: ### 方法1:右对齐(默认) ```bash printf "%4d\n" 42 # 输出:" 42"(前面两个空格) printf "%4d\n" 100 # 输出:" 100"(前面一个空格) printf "%4d\n" 9999 # 输出:"9999"(无空格) ``` ### 方法2:左对齐 ```bash printf "%-4d\n" 42 # 输出:"42 "(后面两个空格) printf "%-4d\n" 100 # 输出:"100 "(后面一个空格) ``` ### 方法3:带前导零填充 ```bash printf "%04d\n" 42 # 输出:"0042" printf "%04d\n" 100 # 输出:"0100" ``` ### 方法4:处理负数 ```bash printf "%5d\n" -42 # 输出:" -42"(右对齐) printf "%-5d\n" -42 # 输出:"-42 "(左对齐) ``` ### 完整示例脚本 ```bash #!/bin/bash numbers=(7 42 365 1000 -5 9999) echo "右对齐:" for num in "${numbers[@]}"; do printf "|%4d|\n" $num done echo -e "\n左对齐:" for num in "${numbers[@]}"; do printf "|%-4d|\n" $num done echo -e "\n零填充:" for num in "${numbers[@]}"; do printf "|%04d|\n" $num done ``` 输出结果: ``` 右对齐: | 7| | 42| | 365| |1000| | -5| |9999| 左对齐: |7 | |42 | |365 | |1000| |-5 | |9999| 零填充: |0007| |0042| |0365| |1000| |-005| |9999| ``` ### 关键说明: 1. **格式说明符**:`%4d` 表示最小宽度为4字符 - `%`:格式标识符 - `4`:字段宽度(强制占位) - `d`:十进制整数格式[^2] 2. **对齐控制**: - 默认右对齐:`%4d` - 左对齐:添加 `-` 标志 → `%-4d` - 零填充:添加 `0` 标志 → `%04d`[^2] 3. **数学表示**: 设输出数字为 $n$,格式化后字符串长度 $L$ 满足: $$ L = \max(4, \lfloor \log_{10}(|n|) \rfloor + 1 + [n < 0]) $$ 其中 $[n < 0]$ 是指示函数(负数时为1) > ⚠️ 注意:当数字超过9999时(如10000),会突破4位限制。如需严格限制宽度,需额外处理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值