如何在Python中读取用户输入

时间:2014-01-01 20:30:52

标签: python input

我是Python初学者,我试图在一个简单的编程竞赛问题中读取两个数字。

# Codeforces New Year 2013 Contest;
# http://codeforces.com/contest/379/problem/A

import sys;

def main ():
    a = input ();
    b = input ();
    resto = 0;
    result = 0;

    while (a > 0):
        a-=1
        result += 1;
        resto += 1;

        if (resto >= b):
            resto -= b;
            a += 1;

    print result;

main ();

如果我尝试用4 2运行程序(用空格分隔),我会收到以下错误:

  

ValueError:基数为10的int()的无效文字:'4 2'

但如果我输入4 [enter]然后输入2 [enter],程序运行没有任何问题。

如何像在C ++中一样从python中读取stdin?

编辑:抱歉这个烂摊子!我通常以这种方式输入代码:

C ++ :. / main<测试

Python:python main.py<测试

2 个答案:

答案 0 :(得分:2)

根据您的语法,我假设您使用的是python 2。

使用raw_input从控制台读取字符串,然后在解析整数之前手动拆分它:

s = raw_input()
tokens = s.split()
a = int(tokens[0])
b = int(tokens[1])

答案 1 :(得分:1)

您可以使用与许多其他编程语言类似的sys.argv:

import sys

for a in sys.argv:
    print a

如果从命令行调用此程序,请执行以下操作:

python test.py 10 20 30 40 50

然后会打印出来:

test.py
10
20
30
40
50

所以你可以使用索引来访问你的参数:

print sys.argv[2] #prints 20

请记住,虽然sys.argv包含字符串 - 所以如果你想像整数那样处理输入,请记住首先像这样输出:

int(sys.argv[2])