if-else 中的值 [重复]

Posted

技术标签:

【中文标题】if-else 中的值 [重复]【英文标题】:Values in if-else [duplicate] 【发布时间】:2020-12-14 22:41:50 【问题描述】:

我有一个编程作业的说明,在一个条件内,我需要提示用户 7 次他们的分数 [hi,med,low]。我需要以后能够使用这些值,所以我很自然地将它们全部分配给一个值,以便以后可以使用:

if title != '':
        visuals = input('Visuals [hi/med/lo]:')
        production = input('Production Design [hi/med/lo]:')
        music = input('Music [hi/med/lo]:')
        sound = input('Sound Design [hi/med/lo]:')
        story = input('Story [hi/med/lo]:')
        characters = input('Characters [hi/med/lo]:')
        genre_gameplay = input('Gameplay or Genre [hi/med/lo]:')
        scores_list.append(visuals[0].lower)

对于我使用的每个值,例如“音乐”,我都收到错误“未使用的变量”。我猜我不能在条件中声明这样的新值,它需要已经存在吗?还是有更好的方法来做到这一点?

【问题讨论】:

您对 Python 和一般编程中的作用域了解多少?你知道 Python 中的全局变量吗?我建议阅读 Python 中的范围和全局变量,然后看看是否能回答您的问题。 只要您只分配它们但从未从中读取,那么可以。它们未使用(但这是一个警告) 还有你想用'visuals[0].lower'实现什么。如果要将第一个字符小写,则应为 .lower() “未使用的变量”在 Python 中不是错误。这听起来像一个棉绒警告。你可以忽略它。 【参考方案1】:

以下是您正在执行的操作以及收到这些警告的原因(错误会引发异常,警告只是提醒您可能有问题)。

您正在创建一堆变量并将input() 函数的返回值分配给它们,该值将是用户键入的任何值。一旦你到达终点,每个变量都会有自己的值,但是你在那里做了一些奇怪的事情。

当您在字符串上使用[index] 时,您访问的是该字符串中的单个字符(或一组字符)。此外,您使用的是.lower,但没有括号,因此您实际上附加到scores_list 列表(我假设之前已定义)是对字符串的.lower 方法的引用。没有使用其他值。

假设您想将所有值存储在列表中,我建议您将所有类别存储在一个列表中,然后使用 for 循环遍历它们并将它们添加到 scores_list 列表中:

if title != '':
    # store categories
    questions = [
        "Visuals",
        "Production Design",
        "Music",
        "Sound Design",
        "Story",
        "Characters",
        "Gameplay or Genre"
    ]
    
    for question in questions:
        # ask each question
        answer = input(f'question [hi/med/lo]: ')
        scores_list.append(answer.lower())

【讨论】:

以上是关于if-else 中的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中SELECT查询中的值分配和使用IF-ELSE

Javascript:document.getElementById.innerHTML 中的 if-else 语句不起作用

将DF1与DF2与if-else语句进行比较

比在 python 中使用 if-else 语句更好的方法 [重复]

如何在 if-else 条件下的列中使用 Spark 值 - Scala

if-else语句