python format
'{:010}'.format('love')'love000000'
'{:010}'.format('fishc')
'fishc00000'
小甲鱼的视频里面说这里只能是数字,字符串不行,会报错,我打出来的为啥可以啊,而且怎么是右边填充? 您好,您打出来的代码是有问题的,虽然不会报错,但是没有按照预期的结果进行填充。'{:010}'.format('love') 实际上是把字符串 'love' 转化为了一个数字,并且在左边填充了 9 个 0,结果为 '000000000love',同样,'{:010}'.format('fishc') 也是错误的,结果为 '00000000fishc'。正确的代码应该是:
'{:010s}'.format('love')
'love000000'
'{:010s}'.format('fishc')
'fishc0000'
其中,s 表示填充字符串类型,并且在右边填充了 5 个 0。 在python中,字符串是可以被格式化的。在这个例子中,'{:010}'表示将值格式化为10个字符宽度,并使用零填充左边(右对齐)。但是由于提供给该格式操作符的实际参数是字符串类型,而不是数字类型,因此python会自动将'dog'转换为字符串。所以,如果您输入一个非数字字符串,python仍然能够正常工作,但是如果您尝试输入其他类型的数据,比如布尔值或列表,那么就会抛出一个typeerror。
最后,关于左对齐和右对齐的问题,当你需要右对齐时可以使用`>`标志,当你需要左对齐时可以使用`<`标志。例如,`'{:<10}'.format('fishc')` 表示将值格式化为10个字符宽度,并使用空格填充右边(左对齐)。
有用请设置最佳答案 本帖最后由 isdkz 于 2023-4-14 17:44 编辑
您好!根据您提供的代码示例,您的代码不会报错,因为这种格式化字符串的方法实际上对字符串输入是允许的。
小甲鱼可能是在视频中说的是 {:010d},我们在使用这种格式化时,主要是为了处理数字类型。
关于右边填充的问题,这是因为您在格式化字符串中使用了 0 作为填充字符,并指定了一个宽度为10的字段。
当填充字符串时,默认是在左侧填充指定的字符。这就导致了在字符串右侧出现填充字符的情况。例如:
'{:010}'.format('love')# 结果为 'love000000'
'{:010}'.format('fishc')# 结果为 'fishc00000'
如果您希望在字符串左侧填充字符,可以使用以下格式化字符串:
'{:>010}'.format('love')# 结果为 '000000love'
'{:>010}'.format('fishc')# 结果为 '00000fishc'
在这个例子中,> 符号表示右对齐,即在左侧填充字符。
页:
[1]