Python 将零作为前缀添加到基于位数的计算值中
我已经写了一个表达式,它将要求用户输入。根据用户输入,它将计算一个值。如果计算值为1,则我希望将该值转换为0001。当计算值为2和3位数时,同样的情况也适用 如果计算值是4或5位数,那么我不希望对其进行任何修改。这个值在程序的后面部分使用,我在这里没有提到Python 将零作为前缀添加到基于位数的计算值中,python,numpy,Python,Numpy,我已经写了一个表达式,它将要求用户输入。根据用户输入,它将计算一个值。如果计算值为1,则我希望将该值转换为0001。当计算值为2和3位数时,同样的情况也适用 如果计算值是4或5位数,那么我不希望对其进行任何修改。这个值在程序的后面部分使用,我在这里没有提到 import numpy as np FT_init = 3.1212 delt = 0.15 TS_init = 165 flowtime = input("Enter the flow time required: ") timeste
import numpy as np
FT_init = 3.1212
delt = 0.15
TS_init = 165
flowtime = input("Enter the flow time required: ")
timestep = (flowtime-FT_init)/delt
timestep = round(timestep + TS_init)
print timestep
我请求您对此提供帮助。只需将打印更改为使用格式字符串:
print '%04d' % int(timestep)
这将零填充左边,并允许它显示5位数字没有问题
但是,您不能在任何类型的计算中使用该输出,因为转换回一个数字将去掉左零,并可能将其用作八进制数-如果存在无效八进制的数字,即0397,则会导致转换错误。请使用该选项。下面的格式规范,“{:04}”
,表示将其替换为format(n)
中的参数n
,然后将其格式化为:
,前导零为0
,打印至少4位4
具有不同打印宽度编号的示例:
for n in [1, 12, 123, 1234, 12345, 123456]:
print('{:04}'.format(n))
输出:
0001
0012
0123
1234
12345
123456
您可以使用zfill()字符串方法:
str(timestep).zfill(4)
这或多或少与另一个答案相似
i = 9
print("{:05d}".format(i))
你的意思是你想用那种方式打印吗?不是真的。我希望以这种方式转换值。假设我计算的时间步长为263,那么我希望将该值转换为0263。如果是25,那么是0025。但是如果计算的时间步长是2569,那么我不想修改它。当计算的时间步长为5位数时,同样适用。以后是否使用expect整数或字符串?@hpaulj此时间步长值将用于标识将导入python的文本文件。例如,如果时间步长值为8500,则将导入与时间步长值对应的文本文件h0-8500.txt、h1-8500、txt等,并对该数据进行进一步分析。因此,这是?然后在以后构造文件名时使用其中一个字符串格式建议。数字(整数)没有前导零,只有它们的字符串表示形式。谢谢Ayush的回复。你的建议行得通,但我不想只打印时间步长,我想计算时间步长以获得所需的位数。你能解释一下你的答案吗?这对以后的用户更有帮助