检查拼写错误,语和代码格式问题

时间:2019-07-05 05:17:11

标签: python python-3.x

Hello World!的代码输出如何。

equals

输出:print("\110\145\154\154\157\40\127\157\162\154\144\41")

2 个答案:

答案 0 :(得分:1)

根据docs中的转义序列列表,\ooo代表一个八进制值ooo的字符

因此,如果我们考虑第一个字符\110,则它是八进制值110或整数值72(即H的字符,如下所示< / p>

In [25]: print('\110')                                                                                                                                               
H

In [26]: chr(0o110)                                                                                                                                                  
Out[26]: 'H'

In [27]: chr(72)                                                                                                                                                     
Out[27]: 'H'

In [28]: 0o110 == 72                                                                                                                                                 
Out[28]: True

类似地,可以争论其他字符,并且可以理解打印代码Hello World的原因


答案 1 :(得分:0)

我从这张IBM® IBM Knowledge Center拍摄了这张图片,并突出显示了一些需要打印Hello World!的字符。

highlighted text to recognized 'Hello World!'

因此,您要从八进制值打印ASCII字符。我们怎么知道八进制还是非八进制?检查下表(从rdrr.io中获得,并提供了一些示例,您也可以从String and Bytes literals中的Python Documentation中找到它)

+-------------------------------------------------------------------+
| \n         |  newline                                             |
| \r         |  carriage return                                     |
| \t         |  tab                                                 |
| \b         |  backspace                                           |
| \a         |  alert (bell)                                        |
| \f         |  form feed                                           |
| \v         |  vertical tab                                        |
| \\         |  backslash \                                         |
| \'         |  ASCII apostrophe '                                  |
| \"         |  ASCII quotation mark "                              |
| \`         |  ASCII grave accent (backtick) `                     |
| \nnn       |  character with given octal code (1, 2 or 3 digits)  |
| \xnn       |  character with given hex code (1 or 2 hex digits)   |
| \unnnn     |  Unicode character with given code (1--4 hex digits) |
| \Unnnnnnnn |  Unicode character with given code (1--8 hex digits) |
+-------------------------------------------------------------------+

根据上表中的\格式,您在每个反冲(\nnn)之后提供了两位或三位数,它是八进制值。

'H' --> 110
'e' --> 145
'l' --> 154
'l' --> 154
'o' --> 157
' ' --> 40
'W' --> 127
'o' --> 157
'r' --> 162
'l' --> 154
'd' --> 144
'!' --> 41

这些是您用来打印Hello World!的八进制值,您也可以从十六进制值打印它。

>>> print("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21")  # \xnn format
Hello World!