输入提示不会结束

2024-10-03 13:17:20 发布

您现在位置:Python中文网/ 问答频道 /正文

运行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)

有人能帮我解释一下我做错了什么吗。谢谢您!你知道吗


Tags: 文件infor数字resultseq线路权重
1条回答
网友
1楼 · 发布于 2024-10-03 13:17:20

不知道你的终端出了什么问题。考虑使用^{}而不是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,)]

相关问题 更多 >