如何在python中获取多行,多变量输入

时间:2018-09-16 02:58:08

标签: python python-3.x

输入应该是一系列整数对,每行一对。每对构成一个范围,该范围用于进行多个计算,并输出单个整数以及两个初始整数。输入中的两个整数应以单个空格分隔。以下代码仅需一行输入。

我应该进行哪些更改以使其接受多行输入并打印出多行输出?代码是用python3编写的

i,j = input().split(" ")
max_count = 0
n = int(i)
if int(i) >= int(j):
    for n in range(int(j), int(i)):
            count = 2
            while n > 1:
            if count > max_count:
                    max_count = count
            if n == 1:
                    count = 1
            elif n % 2 != 0:
                    n = (3 * n) + 1
                    count += 1
            if n % 2 == 0:
                    n = n / 2
                    count += 1
if j > i:
    for n in range(int(i), int(j)):
            count = 2
            while n > 1:
            if count > max_count:
                    max_count = count
            if n == 1:
                    count = 1
            elif n % 2 != 0:
                    n = (3 * n) + 1
                    count += 1
            if n % 2 == 0:
                    n = n / 2
                    count += 1        
print(i, j, max_count)

以下是我要解决的问题的链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=29&page=show_problem&problem=36

2 个答案:

答案 0 :(得分:0)

来自 How to get multiline input from user

PageSerializer

您可以将输入行数设置为您所需的任何值。

答案 1 :(得分:0)

这是我的理解:

您的代码工作正常,但只需要一行(或一对)即可输入。您需要一种输入多于一行(或一对)的方法。


在存储python文件的同一目录中创建一个名为“ input.txt”的文本文件。在其中输入所有对,每行一对,然后保存文件。

这样修改代码:

# Opens the text file and imports the sets into a list
with open('input.txt') as f:
    input_list = f.read().splitlines()

for pair in input_list:
    # Splits the set
    i, j = pair.split(' ')

    # Put the rest of your code here just as it was ...
    max_count = 0
    n = int(i)
    # And so on ...