我如何让Python用不同的输入变量列表多次打印出方程的答案

  • 本文关键字:列表 变量 打印 答案 方程 Python python
  • 更新时间 :
  • 英文 :


从下面的代码中可以看出,我对python非常陌生。我毫不怀疑这个问题已经在这个网站的某个地方得到了回答,但我找不到它

我有一个求解k4的方程,它有三个变量(cr,q和qmax(。qmax是一个常数,我希望设置为11.2。

在代码中,我单独定义了每个变量的值,以求解一个特定的k4值。

import math
cr = 1
q = 3.8
qmax = 11.2
k4 = cr * ((-math.log(1 - ((q / qmax) ** (1 / 3)))) +
(0.5 * math.log(1 + ((q / qmax) ** (1 / 3)) + ((q / qmax) ** (2 / 3)))) +
(math.sqrt(3) * math.atan(((math.sqrt(3)) * ((q / qmax) ** (1 / 3))) / (2 + ((q / qmax) ** (1 / 3))))))
print(k4)

我想做的是让python为每个变量输入一个值列表,并打印出答案。现在,代码仅限于手动键入每个变量,然后只打印出一个k4值。

我的列表是这样的:(它不是代码,但我格式化了它,所以它看起来像一个表(

cr   q
1    3.8
3    0.5
7    0.1
10   0.01

谢谢你的帮助!

您可以迭代每对crq值:

import math
q_max = 11.2
value_pairs = [(1, 3.8), (3, 0.5), (7, 0.1), (10, 0.01)]
for cr, q in value_pairs:
k4 = cr * ((-math.log(1 - ((q / qmax) ** (1 / 3)))) +
(0.5 * math.log(1 + ((q / qmax) ** (1 / 3)) + ((q / qmax) ** (2 / 3)))) +
(math.sqrt(3) * math.atan(((math.sqrt(3)) * ((q / qmax) ** (1 / 3))) / (2 + ((q / qmax) ** (1 / 3))))))
print(k4)    

将计算定义为函数将对您有所帮助。尝试:

import math
def calcu(*args):
print('cr  q  qmax  k4')
for i in args:
cr,q,qmax = i[0],i[1],i[2]
k4 = cr * ((-math.log(1 - ((q / qmax) ** (1 / 3)))) +(0.5 * math.log(1 + ((q / qmax) ** (1 / 3)) + ((q / qmax) ** (2 / 3)))) +(math.sqrt(3) * math.atan(((math.sqrt(3)) * ((q / qmax) ** (1 / 3))) / (2 + ((q / qmax) ** (1 / 3))))))
print(cr , q , qmax,k4)

现在将您的值列为列表,如:

calcu([1,2,3],[2,3,4])

现在,如果您已修复qmax

import math
qmax = 'some number'
def calcu(*args):
print('cr  q  k4')
for i in args:
cr,q = i[0],i[1]
k4 = cr * ((-math.log(1 - ((q / qmax) ** (1 / 3)))) +(0.5 * math.log(1 + ((q / qmax) ** (1 / 3)) + ((q / qmax) ** (2 / 3)))) +(math.sqrt(3) * math.atan(((math.sqrt(3)) * ((q / qmax) ** (1 / 3))) / (2 + ((q / qmax) ** (1 / 3))))))
print(cr , q ,k4)

现在称之为:

calcu([1,2],[2,3])

最新更新