Python: чтение переменной из списка файла для вычисления уравнения - PullRequest
0 голосов
/ 26 февраля 2019

Я должен рассчитать другое уравнение (мы предполагаем, 3 реакции).Каждый использует свою переменную, и я должен прочитать эту переменную из файла list.txt.Моя идея такова:

f = open('list.txt')
lines = f.readlines()

k1 = lines[0]

r1 = k1 * 2  # this is first equation 
print(r1) 

k2 = lines[1]  # second equation
r2 = k2 * 2
print(r2) 

k3 = lines[2]
r3 = k3 * 3
print (r3) 

Мой список:

1
2
3

, но этот код печатает первую строку два раза, вторую строку три раза и так далее.Вместо этого я хочу, чтобы k1, k2 и k3 были переменными, чтобы получить в этом случае:

r1 = 2
r2 = 6
r3 = 9.

Как мне получить этот результат?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

когда вы используете оператор * в строках, вы их умножаете.например: "a"*3 будет "aaa", и когда вы используете его для чисел, вы выполняете математическую операцию.например: 3*6=18

каждая строка является строкой, поэтому вам необходимо привести строку к типу int: int(line).

. Кроме того, следует рассмотреть возможность использования карты function.

это облегчит вашу жизнь.

map выполняет заданную функцию для каждого элемента в списке.

например:

result = list(map(lambda x: int(x) * 3, lines))

он берет каждый элемент в списке, приводит его к int и умножает на 3.

0 голосов
/ 26 февраля 2019

ясно здесь , что если вы прочитаете файл с readlines (), он вернет строку.Итак, когда вы хотите сделать математическое вычисление, вам нужно сначала преобразовать его в целое число

f=open('list.txt')
lines=f.readlines()

k1=int(lines[0]) # convert to integer

r1=k1*2  #this is first equation 
print (r1) 

k2=int(lines[1])  #second equation
r2=k2*2
print (r2) 

k3=int(lines[2])
r3=k3*3
print (r3)
...