Разбор чисел в Python - PullRequest
       22

Разбор чисел в Python

2 голосов
/ 06 июня 2009

я хочу принять участие, как это 10 12

13 14

15 16

..

как взять эти входные данные, как два различных целых числа, чтобы я мог умножить их в python после каждых 10 и 12 появляется новая строка

Ответы [ 3 ]

7 голосов
/ 06 июня 2009

Я не уверен, что хорошо понял вашу проблему, похоже, вы хотите разобрать два int, разделенных пробелом.

В Python вы делаете:

s = raw_input('Insert 2 integers separated by a space: ')
a,b = [int(i) for i in s.split(' ')]
print a*b

Пояснение:

s = raw_input('Insert 2 integers separated by a space: ')

raw_input берет все, что вы вводите (до тех пор, пока вы не нажмете ввод) и возвращает его в виде строки, поэтому:

>>> raw_input('Insert 2 integers separated by a space: ')
Insert 2 integers separated by a space: 10 12
'10 12'

В s у вас теперь '10 12 ', два int разделены пробелом, мы разделяем строку на пробел с помощью

>>> s.split(' ')
['10', '12']

теперь у вас есть список строк, вы хотите преобразовать их в int, поэтому:

>>> [int(i) for i in s.split(' ')]
[10, 12]

затем вы присваиваете каждому члену списка переменную (a и b), а затем делаете произведение a * b

2 голосов
/ 06 июня 2009
f = open('inputfile.txt')
for line in f.readlines():
    # the next line is equivalent to:
    # s1, s2 = line.split(' ')
    # a = int(s1)
    # b = int(s2)
    a, b = map(int, line.split(' '))
    print a*b
0 голосов
/ 06 июня 2009

Вы можете использовать регулярные выражения (re -модуль)

import re

test = "10 11\n12 13" # Get this input from the files or the console

matches = re.findall(r"(\d+)\s*(\d+)", test)
products = [ int(a) * int(b)  for a, b in matches ]

# Process data
print(products)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...