Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(python)实现用户多输入的最佳方法_Python_Input - Fatal编程技术网

(python)实现用户多输入的最佳方法

(python)实现用户多输入的最佳方法,python,input,Python,Input,我向我的用户询问信息,我倾向于有很多输入字段,我发现一行接一行地使用输入是非常重复的 当前代码: a= input(str("a value: ")) b= input(str("b value: ")) c= input(str("multiple c values: ")).split(" ") (值已从我的项目中更改,但用途相同) 我的所有输入字段都按预期工作,但我想清理代码。注意,如果您有特殊情况(c),您无论如何都必须单独处理。忽略特殊情况,您可以按照以下方式使用dict: v

我向我的用户询问信息,我倾向于有很多输入字段,我发现一行接一行地使用输入是非常重复的

当前代码:

a= input(str("a value:  "))
b= input(str("b value:  "))
c= input(str("multiple c values:  ")).split(" ")
(值已从我的项目中更改,但用途相同)


我的所有输入字段都按预期工作,但我想清理代码。

注意,如果您有特殊情况(
c
),您无论如何都必须单独处理。忽略特殊情况,您可以按照以下方式使用dict:

val = {}
keys = ['a', 'b']

for key in keys:
    val[key] = input(key+(" value:  "))
然后在代码中使用
val['a']
而不是
a

如果您不想在任何地方使用dict并且必须使用
val[…]
,则可以使用此行

globals()[key] = input(key+(" value:  "))

您可以使用字典来存储输入,其中键是变量,值是问题。然后在循环中用输入替换值/问题

示例代码:

dictr = {"a": "a value: ", "b": "b value: ", "c": "multiple c values: "}

for key, value in dictr.items():
    dictr[key] = input(value).split(" ")

print(dictr)
输出:

a value: a
b value: b
multiple c values: a b c
{'a': ['a'], 'b': ['b'], 'c': ['a', 'b', 'c']}

将代码分成问题和提问,如下所示:

# question and whether it's a multi one
questions={"a": False,
           "b": False,
           "c": True}

answers={}
for k, v in questions.items():
    q="multiple {} values: " if v else "{} value: "
    answers[k]=input(q.format(k))

print(answers)

编写一个包含提示和名称列表的函数,并返回一个将名称映射到响应的字典。在调用
str
时不需要包装
str
文本。我喜欢这样:)只是为了放慢键入我的速度:dw如果
a
的所需值是
'a'
,这就是我键入上述代码时的问题,他只需要操纵列表并使用.join()