Simple print, much secret

Posted kbman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Simple print, much secret相关的知识,希望对你有一定的参考价值。

小小print,大大content

print是Python的内置方法之一,也是我们最常用的打印、调试的方式。我们来看看builtins.py中print的源码:

def print(self, *args, sep= , end=\n, file=None): # known special case of print
    """
    print(value, ..., sep=‘ ‘, end=‘\n‘, file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
    """
    pass

*args: 这个参数决定了print能同时打印多个值。

print(1, 2, 3)

>>> 1  2  3

sep: 这个参数决定了当print打印多个值时,值中间的连接字符。他的默认值是一个空格。也就是你打印多个值的时候,这些值会以一个空格分开,如上。

print(1, 2, 3, sep=|)
print(1, 2, 3, sep=ppp)
print(1, 2, 3, sep=哈哈哈)

>>> 1|2|3
>>>1ppp2ppp3
>>>1哈哈哈2哈哈哈3

end: 这个参数决定了打印结束时,用什么字符串接在打印的值的末尾,默认是一个‘\n‘的换行符。

print(1,2,3, end=|)
>>> 1 2 3|

print(1,2,3, end=哈哈哈)
>>> 1 2 3哈哈哈

当end=‘\r‘的时候,打印完一行的时候,光标会返回到这一行的行首。第二次打印时,会覆盖第一次打印的值。

print(1, end=\r)
print(2, end=\r)
print(3, end=\r)
print(4, end=\r)
print(5, end=\r)

>>> 5

file:重头戏,当这个参数传入一个文件句柄的时候,能将print的内容,写入到这个文件。

f = open(1.txt, mode=r+, encoding=utf-8)
print(我是帅比, file=f)
f.close()
>>>当前目录下的文件1.txt,里面的内容就变成了 我是帅比

前提:文件句柄f必须是可写入的,如果文件句柄f是r的话,就会报错。

flush: Python中flush是把文件从内存缓冲区buffer中,强制刷新到硬盘中的一种方法。

文件操作写入时,会先把内容写入到内存buffer(缓冲区)中,等到文件关闭时,就将缓冲区的内容写入到磁盘。

有时候你需要在文件关闭前,将内容写入到磁盘。这时候就需要用到flush。

 

以上是关于Simple print, much secret的主要内容,如果未能解决你的问题,请参考以下文章

BugKu_web Simple_SSTI

BugKu_web Simple_SSTI

使用 json Web 令牌的 API 身份验证 jwt-simple

如何使 jwt-simple 中的令牌过期?

Too much thinking! Too much annoying.

c_cpp print_all_simple_path