【问题标题】:Python: read a variable from list of a file in order to calculate equationPython:从文件列表中读取变量以计算方程
【发布时间】:2019-02-26 12:20:30
【问题描述】:

我必须计算不同的方程式(我们假设 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

但此代码打印第一行两次,第二行打印三次,依此类推。相反,我希望将 k1k2k3 作为变量,以便在这种情况下获得:

r1 = 2
r2 = 6
r3 = 9.

我怎样才能得到这个结果?

【问题讨论】:

  • 您从文件中读取的值将始终是字符串。您需要 int 函数将它们转换为数字。

标签: python list loops variables equation


【解决方案1】:

很明显here 如果您使用 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)

【讨论】:

    【解决方案2】:

    当您在字符串上使用 * 运算符时,您可以将它们复数。 例如:"a"*3 将是 "aaa" 当你在数字上使用它时,你会执行数学运算。 例如:3*6=18

    每一行都是字符串,所以你需要将该行转换为int:int(line)

    另外,您应该考虑使用map 函数。

    它会让你的生活更轻松。

    map 对列表中的每个项目执行给定的功能。

    例如:

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

    它获取列表中的每个项目,将其转换为 int,然后将其乘以 3。

    【讨论】:

      猜你喜欢
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多