【发布时间】:2020-08-09 05:18:03
【问题描述】:
菜鸟问题,因为我是 Python 新手,但我正在做一个附带项目,其中每个电压(0.3、0.32 等)都用作输入,然后该输入在输出文件中生成概率。
这是我正在寻找的输出:
输入:0.3 概率 = 7.509
输入 0.32 概率 = 1.399
输入 0.34 概率 = 2.773
输入 0.36 概率 = 0.127
...
这是我得到的输出:
0.3
概率 = 7.509
0.3
概率 = 1.399
0.3
概率 = 2.773
0.3
概率 = 0.127
我遇到麻烦将 print(str(voltage)) 语句放在正确的位置以获得我想要的输出...如您所见,它一遍又一遍地重复电压。
这是代码,感谢您抽出宝贵时间感谢您:
prob=[]
voltages = [0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5]
for voltage in voltages:
update_code(voltage)
os.system("hspice pbit.sp >output.txt")
def search():
with open('output.txt') as f:
datafile = f.readlines()
for line in datafile:
if 'probability' in line:
prob.append(line)
return True
return False
if search():
for voltage in voltages:
for items in prob:
print(str(voltage))
print(items)
else:
print('False')
【问题讨论】:
-
我认为问题可能在于您在回路中定义了函数,并且您在电压回路本身中循环电压。
-
除了标记的重复项之外,您还有一个单独的问题,即
search只能return一次,因此只能将.append一项到prob。与其让search返回一个布尔值,不如在调用它之后检查prob中是否有任何项目。更好的是,不要为prob使用全局变量,而是让search返回它。 -
我也不明白最外面的循环是干什么用的。这将有助于更详细地解释您要解决的实际总体问题是什么。
标签: python arrays python-3.x list for-loop