我熟悉input()函数,从用户输入读取单个变量.是否有类似的简单方法来读取两个变量?
我正在寻找相当于:
scanf("%d%d", &i, &j); // accepts "10 20\n"
Run Code Online (Sandbox Code Playgroud)
我能够实现这一目标的一种方法是使用raw_input()然后split输入的内容.有更优雅的方式吗?
这不适合现场使用.只是为了学习..
Joh*_*ooy 28
不,通常的方式是 raw_input().split()
在您的情况下,map(int, raw_input().split())如果您希望它们是整数而不是字符串,则可以使用它们
不要用input()它.考虑一下如果用户输入会发生什么
import os;os.system('do something bad')
MAK*_*MAK 10
您也可以从sys.stdin中读取
import sys
a,b = map(int,sys.stdin.readline().split())
Run Code Online (Sandbox Code Playgroud)
小智 5
我也很擅长这个东西.从python.org网站做了一些研究,并进行了一些黑客攻击.该的raw_input功能又回来了,从改变输入.这就是我想出的:
i,j = raw_input("Enter two values: ").split
i = int(i)
j = int(j)
Run Code Online (Sandbox Code Playgroud)
当然,代码并不像使用C的scanf或C++的cin的单行代码那样优雅.Python代码看起来更接近Java(它使用与C,C++或Python完全不同的机制),因此每个变量都需要单独处理.
在Python中,raw_input函数从控制台获取字符并将它们连接成一个String作为其输出.如果在赋值运算符的左侧只找到一个变量,则split函数会将此String分解为String值列表.
在我们的情况下,我们期望两个变量,我们可以使用逗号分隔的标识符列表来获取值.然后将字符串值分配给列出的变量.如果我们想要做算术与这些价值,我们需要将它们转换成数字INT(或浮动使用Python的内置),数据类型INT或浮动的功能.
我知道这个记录将一个很老的帖子的回复也可能是知识已经赫然出现了"常识"了一段时间.不过,我会欣赏的发布像这样的,而不是我不必花搜索和黑客攻击,直到我想出了什么,我觉得几个小时的是,可以在教室里CS1呈现最完美的解决方案.