如何使用参数制作python控制台

时间:2018-12-19 18:47:18

标签: python-3.x

忽略代码中的挪威文字!


尽管我做了一些简单的项目,但没有任何高级知识,我对python还是很陌生的。现在,我试图用参数等制作一个kindoff python控制台。参见底部的代码。

尽管这可行,但它使用了许多if/elif/else语句,这让我感到非常困惑。我也尝试过用可用的命令制作字典,但据我所知,它不支持参数。

有什么办法可以做到这一点?我还尝试过将执行的代码放在另一个文件中,并使它们成为一个函数。这行得通,但是我必须特别设计代码以使用和不使用参数,巫婆是忠诚的。我也没有访问控制台的权限,因为我正在制作一本chromebook,所以我自己制作了“控制台”

帮助?


Main.py

import dice, defs
from os import system, name

consoleclear = lambda: system('cls' if name=='nt' else 'clear')


consoleclear()

while True:
    commandraw = input(" ") # The square is actually an arrow
    command = commandraw.upper() 

    commandargs = command.split()
    if commandargs[0] == "DICE" or commandargs[0] == "TERNING":
        print(" ")
        if len(commandargs) == 2:
            try:
                dice.run(commandargs[1])
            except KeyboardInterrupt:
                print("\n-------Stoppet av bruker-------")
                print(" ")
        elif len(commandargs) == 1:
            try:
                dice.run(None)
            except KeyboardInterrupt:
                print("\n-------Stoppet av bruker-------")
                print(" ")

    elif commandargs[0] == "HELP":
        if len(commandargs) == 1:
            print("Tiljenglige kommandoer: 'dice', 'terning', 'help', 'stop', 'clear'.")
            print("Skriv 'help <kommando>' for å se info om en spesiell kommando")
            print(" ")
        elif len(commandargs) == 2:
            secarg = commandargs[1]
            if commandargs[1] == "DICE":
                print("Bruksmåte: dice <sider>")
                print("Triller en terning med <sider> antall sider. Hvis <sider> ikke blir spesifisert, blir det forespurt")
                print(" ")
            elif commandargs[1] == "TERNING":
                print("Bruksmåte: terning <sider>")
                print("Triller en terning med <sider> antall sider. Hvis <sider> ikke blir spesifisert, blir det forespurt")
            else:
                print("Argumentet {0} ble ikke forstått. Skriv 'help' for mer info.".format(secarg))


    elif command == "STOP":
        break

    elif command == "CLEAR":
        consoleclear()

    else:
        print("{0} ble ikke forstått. Skriv 'help' for mer info.".format(commandraw))
        print(" ")

Dice.py

def run(dice_sides):
    import random, time
    while True:
        while True:
            if dice_sides == None:
                while type(dice_sides) != int or dice_sides <= 1:
                    try:
                        dice_sides = int(input("Hvor mange sider skal terningen ha? "))
                        if dice_sides <= 1:
                            print("Ikke gyldig input: Kan ikke ha 1 eller ferre sider på terningen")
                            continue
                        break
                    except ValueError:
                        print("Ikke gyldig input: Vennligst bruk et helt tall")
            if dice_sides != None:
                try:
                    dice_sides = int(dice_sides)
                except ValueError:
                    print("Det er ikke gyldig input")
                    print("Skriv 'help dice' for hjelp")
                    return
            if dice_sides <= 1:
                print("Ikke gyldig input: Kan ikke ha 1 eller ferre sider på terningen")
                return
            elif dice_sides >= 2:
                break
        print("Triller...")
        time.sleep(5)

        print("Du fikk " + str(random.randint(1,dice_sides))+ "!")

        once_more=input("En gang til? (Ja eller nei) ").upper()
        if once_more=="JA":
            print(" ")
            continue
        elif once_more=="NEI":
            break
        else:
            print("Forsto ikke svaret")

0 个答案:

没有答案