在Python中,使用一行代码读取两个变量。

8 浏览
0 Comments

在Python中,使用一行代码读取两个变量。

我熟悉input()函数,用于从用户输入中读取单个变量。是否有一种类似的简单方法来读取两个变量?

我正在寻找相当于以下代码的方法:

scanf("%d%d", &i, &j); // 接受 "10 20\n"

我能够实现这一点的一种方法是使用raw_input(),然后split输入的内容。是否有更优雅的方法?

这不是用于实时使用,只是用于学习。

0
0 Comments

在Python中,我们可以使用raw_input函数从控制台读取输入。然而,在Python 3之后,raw_input函数被重新命名为input函数。因此,我们需要使用input函数来读取输入。

下面是一个示例代码,用于在一行中读取两个变量:

i,j = input("Enter two values:  ").split()
i = int(i)
j = int(j)

这段代码的原理是,首先通过input函数从控制台获取用户的输入,并将输入的字符串以空格分隔为两个值。然后,我们将这两个值分别赋给变量i和j。最后,我们使用int函数将这两个值转换为整数类型。

需要注意的是,这段代码并不像使用C语言的scanf函数或C++的cin对象那样简洁。在Python中,每个变量都需要单独处理,这与Java更为接近。

在Python中,input函数会将控制台输入的字符连接成一个字符串,并将其作为输出。当在赋值操作符的左侧只有一个变量时,split函数会将这个字符串拆分为一个字符串列表。

在我们的例子中,我们期望有两个变量,因此我们可以使用逗号分隔的列表来给它们赋值。这样,字符串的值就会被赋给所列出的变量。如果我们想对这些值进行算术运算,我们需要使用Python内置的int或float函数将它们转换为数值类型。

虽然这个问题的解决方法可能已经被广泛传播并被认为是常识,但对于像我这样的新手来说,如果能够找到这样的解决方法,而不是花费几个小时进行搜索和尝试,我会更加感激。这样的解决方法也更适合在计算机科学课堂上介绍给初学者。

0
0 Comments

在Python中,我们可以使用sys.stdin来从标准输入读取数据。然而,在读取多个变量时,有时会遇到问题。让我们来看看出现这个问题的原因以及解决方法。

问题的原因在于,当我们使用sys.stdin.readline().split()来读取输入时,它会将整行输入作为一个字符串返回,并且将字符串按空格进行分割。然后,我们使用map(int, ...)来将分割后的字符串转换为整数,并将它们赋值给变量a和b。然而,这种方法在一行中只能读取一个整数,而我们需要读取两个整数。

为了解决这个问题,我们需要一种方法来同时读取两个整数。幸运的是,Python提供了一种简单而强大的方法来实现这一点 - 使用map函数。

首先,我们需要导入sys模块,这样我们就可以使用sys.stdin来读取输入。然后,我们使用sys.stdin.readline().split()来读取输入行并进行分割。接下来,我们使用map(int, ...)来将分割后的字符串转换为整数。

现在,我们来看一下具体的解决方法。下面是一段示例代码,它可以同时读取两个整数:

import sys
a,b = map(int,sys.stdin.readline().split())

在这段代码中,我们使用map(int, ...)来将读取到的两个字符串转换为整数,并将它们分别赋值给变量a和b。这样,我们就成功地从一行中读取了两个整数。

总结起来,通过使用sys.stdin.readline().split()和map(int, ...)的组合,我们可以很容易地从一行中同时读取多个整数。这种方法非常方便,可以节省大量的时间和代码。无论是从标准输入读取数据还是从其他输入流读取数据,这种技巧都可以帮助我们更高效地处理输入。

0
0 Comments

在Python中,通常的方式是使用raw_input().split()来读取两个变量。如果想要将这些变量转换为整数而不是字符串,可以使用map(int, raw_input().split())。不要使用input()来实现这个功能,因为如果用户输入import os;os.system('do something bad'),将会产生不好的结果。

需要注意的是,从Python 3.0开始,raw_input被重命名为input。(如果想要获得input的原始行为,可以使用eval(input))。应该使用eval来处理input的输出。

在Python 3中,这个问题的解决方法更加直观,但是我希望他们在2.6版本中可以加入一些关于这些变化的警告。我想我需要研究一下升级指南。

如果想要读取多个变量,可以尝试读取一行输入并使用split()将其拆分成多个变量。例如,如果要读取4个变量,可以尝试以下方式:var1, var2, var3, var4 = raw_input().split()

0