输入提示不会结束

时间:2018-08-23 01:04:09

标签: python python-3.x

运行Python 3.6.5

我是python的新手。当我在终端中分别运行这些行时,我得到的正是我想要的。当我运行python文件时,输入提示“理想重量?”我提交号码后不会结束。它不断重复“理想的重量?”。我正在尝试从“权重”集中找到数字的组合,这些组合将总结为用户输入。

import itertools
weights = [3, 3, 7.5, 7.5, 10]
weightint = int(input('ideal weight? '))
result = [seq for i in range(len(weights), 0, -1) for seq in itertools.combinations(weights, i) if sum(seq) == weightint]
print(result)

有人可以帮忙解释我在做什么错。谢谢!

1 个答案:

答案 0 :(得分:1)

不确定您的终端出了什么问题。考虑使用argparse代替input

import itertools
import argparse

MY_WEIGHTS = [3, 3, 7.5, 7.5, 10]

def find_weight(w):
    result = [seq for i in range(len(MY_WEIGHTS), 0, -1) for seq in itertools.combinations(MY_WEIGHTS, i) if sum(seq) == w]
    return result

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-w', '--weight', required=True, type=int, help='The weight')
    args = parser.parse_args()
    result = find_weight(args.weight)
    print('result: {}'.format(result))

if __name__ == '__main__':
    main()

然后从命令行使用--weight-w调用它:

python3 ./weight.py --weight 10

result: [(10,)]