我的老师给了我这个问题:制作一个读取整数并打印它的程序。 所以我找到了这段代码:
integer_number = int(input("Enter an integer: "))
print("You entered:", integer_number)
我想了解为什么函数:“int”比“input”先出现
我希望“input”函数比“int”函数先出现,因为“input”具有向用户请求信息以便用户填写的功能,而“int”则将给定的字符串转换为整数。
integer_number = int(input("something here"))
相当于***:
temp_var = input("something here")
integer_number = int(temp_var)
事实并非如此,因为
int()
函数接受一个字符串并将其转换为 int
。如果您以相反的方式进行操作,该函数将没有任何内容可转换。
*** :在 Python 中,函数是一等对象。您可以将它们分配给变量,将它们存储在数据结构中,将它们作为参数传递给其他函数,甚至将它们作为其他函数的值返回。因此,无需使用
temp_var
创建 input("something here)"
并使用 int
将其作为参数传递给 int(temp_var)
您可以直接使用它们,如下所示: int(input("something here"))
在Python中,你可以将函数作为另一个函数的参数传递,当然它们会在外部函数之前被评估。我想我应该向您指出相关的官方 Python 文档,其中指出了这一点,但仅通过谷歌搜索现在还行不通。
参见 Python 的函数是一流的 :
Python 的函数是一流的对象。您可以将它们分配给变量,将它们存储在数据结构中,将它们作为参数传递给其他函数,甚至将它们作为其他函数的值返回。
在 SO 上得到了一个很好的答案:
简而言之,这意味着该对象的使用没有任何限制。它与任何其他物体一样。
第一类对象是一个实体,可以动态创建、销毁、传递给函数、作为值返回,并拥有编程语言中其他变量所拥有的所有权利。
你的问题不是第一个问题:
答案:
你是对的,所有参数在调用函数之前都会被评估,否则函数无法知道传递给它的是什么。所以你所做的实际上是:
但这里也没有文档链接。
找了好久才找到这里:
6.3.4。调用它是Python 3的链接:
......................所有参数表达式在尝试调用之前都会被评估。形参列表的语法请参考函数定义章节.........
当您使用
input("something")
时,它会要求用户输入,return
是一个字符串,这里"something"
是input()
的参数
在
output上调用
int()
尝试将其转换为 int
,这里的输入(无论用户输入什么)是 argument 到 int()
如果你有
input(int("something"))
,会发生的情况是 "something"
被传递给 int()
,引发异常(因为该文字字符串不能是有效的 int
)
首先,代码首先利用
input()
函数向用户请求整数。显示提示符 "Enter an integer: "
,清楚地指示所需的输入类型。接下来,使用 int()
函数将输入转换为整数。这一重要步骤可确保将用户输入的值视为整数,使其适合数学计算并避免任何可能的错误。然后将转换后的整数分配给变量 integer_number
,其中包含代码的最终结果。
接下来,我们调用有用的
print()
函数来传递自定义消息以及输入的整数。消息 "You entered:"
后面平滑地跟着存储在变量 integer_number
中的整数值,让用户放心输入。
在 input 之前放置 int 的原因是因为 input 会自动将您输入的任何内容设置为字符串。然后 int 函数启动并将任何内容设置为整数。如果您以其他方式完成此操作,您可能会将其设置为整数,然后设置为字符串,并且会出现错误,因为输入必须具有如下所示的内容:
i = input('print things here')
用引号表示您打印的内容,然后要求输入。使用 input(int('input')) ,它会尝试打印 int('input') 而不用引号引起来,并会导致错误。