我是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<测试
答案 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])