Python中print和input调用了Python中底层的什么方法
代码版本:3.6.3
print() 用 sys.stdout.write() 实现
import sys print('hello') sys.stdout.write('hello') print('new') # 结果: # hello # hellonew
可以看到两者还是有不同的。
sys.stdout.write() 结尾没有换行,而 print() 是自动换行的。另外, write() 只接收字符串格式的参数。
print()能接收多个参数输出,write()只能接收一个参数。
input
Python3中的input() 用 sys.stdin.readline() 实现。
import sys a = sys.stdin.readline() print(a, len(a)) b = input() print(b, len(b))
# 结果:
# hello
# hello
# 6
# hello
# hello 5
readline()会把结尾的换行符也算进去。
readline()可以给定整型参数,表示获取从当前位置开始的几位内容。当给定值小于0时,一直获取这一行结束。
import sys a = sys.stdin.readline(3) print(a, len(a)) # 结果: # hello # hel 3
readline()如果给定了整型参数结果又没有把这一行读完,那下一次readline()会从上一次结束的地方继续读,和读文件是一样的。
import sys a = sys.stdin.readline(3) print(a, len(a)) b = sys.stdin.readline(3) print(b, len(b)) # 结果 # abcde # abc 3 # de # 3
input()可以接收字符串参数作为输入提示,readline()没有这个功能。
原文:https://blog.csdn.net/lnotime/article/details/81385646