【问题标题】:Having Trouble Printing During Loop [duplicate]循环期间打印有问题[重复]
【发布时间】: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


【解决方案1】:

您需要的是一个zip 函数,以便您可以并排打印电压和概率。请注意,两个列表应具有相同的大小以避免任何错误。

for voltage, item in zip(voltages, prob):
    line = "Input: " + str(voltage) + " Probability: " + item
    print(line)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多