繁体   English   中英

了解不常见的 python 语法

[英]Understanding an uncommon python syntax

这是一个hackerrank练习题https://www.hackerrank.com/challenges/python-string-formatting/problem 这实际上不是一个难题,但讨论中发布的解决方案之一令人困惑。 我正在添加他们的 function 以执行以下相同操作:

def print_formatted(number):
    p = len(f"{number:b}")
    for i in range(1,number+1): print(f"{i: >{p}} {i: >{p}o} {i: >{p}X} {i: >{p}b}")
  1. 即使 b 未定义,它也不会引发错误。 如果我只是在 python 中执行 5:6,则会引发错误。 但是如果我打印(f“{5:6}”),它会打印在 5 之前添加 6 个空格并打印它。 这里到底发生了什么,常见的用例是什么?
  2. print 语句中到底发生了什么? 所有的 o, X nd b 做什么? 为什么在一个活动的 {} 中有一个 {},它有什么作用?

格式规范迷你语言

“格式规范”在格式字符串中包含的替换字段中使用,以定义单个值的呈现方式(请参阅格式字符串语法和格式化字符串文字)。 它们也可以直接传递给内置的 format() function。 每个可格式化的类型都可以定义如何解释格式规范。

可用的 integer 表示类型为:

类型 意义
'b' 二进制格式。 输出以 2 为底的数字。
'C' 特点。 打印前将 integer 转换为对应的 unicode 字符。
'd' 十进制 Integer。 输出以 10 为底的数字。
'o' 八进制格式。 以 8 为基数输出数字。
'X' 十六进制格式。 输出以 16 为基数的数字,对 9 以上的数字使用小写字母。
'X' 十六进制格式。 以 16 为基数输出数字,对 9 以上的数字使用大写字母。如果指定了“#”,前缀“0x”也将大写为“0X”。
'n' 数字。 这与 'd' 相同,只是它使用当前的语言环境设置来插入适当的数字分隔符。
没有任何 与“d”相同。

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM