как сделать .in файл в качестве входных данных для Python - PullRequest
0 голосов
/ 12 декабря 2018

вот мой код

def jumlah(A,B,C):
    global result
    result = A+B+C

count = 0

i = eval(input('input total test case: '))

while count < i :
    A = eval(input('input A: '))
    B = eval(input('input B: '))
    C = eval(input('input C: '))
    jumlah(A,B,C)
    count = count + 1
    print('case no'+str(count)+' : '+str(result))

как поставить внешний файл для ввода, чтобы я мог сделать тест, не вводя число 1 на 1

вот мой пример input.in файла

2
1
2
3
2
3
4

первая строка - общее количество дел, а остальное - ввод для A, B и C. Мой ожидаемый результат будет

case no1 : 6
case no2 : 9

, пожалуйста, помогите.спасибо

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Вы должны разбить свой код на отдельные функции, которые выполняют действия, которые вы хотите выполнить.В этом случае вы можете запросить у пользователя, хотят ли они прочитать файл или ввести вручную.На основании этого решения вы можете вызвать соответствующую функцию.

def jumlah(A,B,C):
    result = A+B+C
    return result

def start():
    option = input(' Would you like to: \n'
        ' - (r) read from a file \n'
        ' - (i) input(i) by hand \n' 
        ' - (q) quit \n ')
    if option.lower() not in 'riq':
        print('Invalid choice, please select r, i, or q.')
        option = start()
    return option.lower()

def by_hand():
    count = 0
    i = eval(input('input total test case: '))

    while count < i :
        A = eval(input('input A: '))
        B = eval(input('input B: '))
        C = eval(input('input C: '))
        result = jumlah(A,B,C)
        count = count + 1
        print('case no'+str(count)+' : '+str(result))

def from_file():
    path = input('Please input the path to the file: ')
    with open(path, 'r') as fp:
        cases = int(fp.readline().strip())
        for i in range(1, cases+1):
            a,b,c = fp.readline(), fp.readline(), fp.readline()
            result = jumlah(A,B,C)
            print('case no'+str(i)+' : '+str(result))

def main():
    while True:
        opt = start()
        if opt == 'r':
            from_file()
        if opt == 'i':
            by_hand()
        if opt == 'q':
            print('Goodbye.')
            return

if __name__ == '__main__':
    main()
0 голосов
/ 12 декабря 2018
$ python my_file.py < my_input.txt

Я думаю, сделал бы это:)

0 голосов
/ 12 декабря 2018

Вы можете просто открыть входной файл и прочитать его,

with open("input.in", "r") as inputs:
    for line in ins:
        #your inputs one by one.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...