首页 > 解决方案 > 每次我在命令中输入视图时,我都无法弄清楚如何让它不说添加视图到列表中

问题描述

每次我在命令中输入视图时,我都无法弄清楚如何让它不说添加视图到列表中。

或我可以输入的任何命令。

我试图做到这一点,如果你不键入命令但它不起作用。

# Declaring the sorting var

sorting = []

# Sorting the list

def sort():
    sorting.remove('sort')
    print(' ')
    print('Your sorted list:')
    print(' ')
    print('-----------------------------------------------')
    sorting.sort()
    print(sorting)
    print('-----------------------------------------------')
    print(' ')

# Clearing the list

def clear():
    sorting.clear()
    print('-----------------------------------------------')
    print('cleared your list')
    print('-----------------------------------------------')
    print(' ')

# View the list without sorting

def view():
    sorting.remove('view')
    print('Your list:')
    print(' ')
    print('-----------------------------------------------')
    print(sorting)
    print('-----------------------------------------------')

# Quiting

def quiting():
    sorting.remove('quit')
    quit()

# Adding things to list and command functions

def append():
    sort_appending = input('type something to add it to list, type sort to sort your list, type clear to clear your list, type view to view your list not sorted type quit to quit: ')
    print(' ')
    if sort_appending != 'sort' or 'quit':
        sorting.append(sort_appending)
        print('-----------------------------------------------')
        print('Added', sort_appending, 'to your list')
        print('-----------------------------------------------')
        print(' ')
    if sort_appending == 'sort':
        sort()
    if sort_appending == 'clear':
        clear()
    if sort_appending == 'view':
        view()
    if sort_appending == 'quit':
        quiting()

# Main loop

run = True

while run == True:
    append()

如果你不理解我,你可以把它放到你的 python IDLE 中并测试它

请帮助我这是我需要帮助的问题。

标签: pythonlistsorting

解决方案


'view'在这里检查被解释为“添加元素”输入:

    if sort_appending != 'sort' or 'quit':
        sorting.append(sort_appending)

作为一个简单的解决方法,我建议将其重组为一个if...elif链,以便您只对任何给定的输入做一件事:

    if sort_appending == 'sort':
        sort()
    elif sort_appending == 'clear':
        clear()
    elif sort_appending == 'view':
        view()
    elif sort_appending == 'quit':
        quiting()
    else:  # any other input is implicitly treated as an 'add'
        sorting.append(sort_appending)
        print('-----------------------------------------------')
        print('Added', sort_appending, 'to your list')
        print('-----------------------------------------------')
        print(' ')

这可以防止您在第一次检查中复制每个“命令”(当您在一个地方添加新命令但忘记在那里添加时遇到这样的错误)!


推荐阅读