繁体   English   中英

如何在Python中读取用户输入

[英]How to read user input in Python

我是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:int()的基数为10的无效文字:'4 2'

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

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

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

C ++:。/ main <test

Python:python main.py <test

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

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

s = raw_input()
tokens = s.split()
a = int(tokens[0])
b = int(tokens[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])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM