为什么input([prompt])里面有一个[ ]?

Why is there a [ ] in input([prompt])?

https://docs.python.org/3/library/functions.html#input

见上文link。 现在,下面的问题可能很愚蠢,但想让自己清楚

第一个问题: 为什么input([prompt])里有个[]?有什么意义吗?

The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that.

第二个问题:为什么需要将输入转换为字符串?来自 sys.stdin 的输入不是已经是 字符串 了吗?

第三个问题:在这种情况下,剥离尾随换行符意味着什么?

python 文档中的 [] 指示可选参数 - 令人困惑的是,不是需要列表作为参数。

来自现代 UTF-8 终端的输入很可能是字节,因此转换为字符串以避免混淆。

stripping a trailing newline 意味着它将换行符从末尾移除,因此您不会在字符串中结束它。

  1. 在Python文档中,方括号内的参数是可选的

  2. sys.stdin是一个字节流所以需要解码才能将字节转换成str.

  3. 单击 "ENTER" 时,将向 sys.stdin 发送一个换行符。 input 使用换行符来分隔输入的结尾。落后于 newlien 是设计决策,通常很有用。例如,print(input("Enter your name")) 不会导致两个换行符。

为什么input([prompt])里面有一个[]?有什么意义吗?

你可以忽略括号。你可以像这样使用 input()。

a = input("Type your age here")

第二问:不用转换了。用户输入的内容将是一个字符串。