簡體   English   中英

如何壓縮這個簡單的python程序以使其更高效?

[英]How can I condense this simple python program to make it more efficient?

這只是我嘗試制作的一個簡單游戲,會問您幾個問題,然后自動在答案中格式化新密碼。

因為我是一個初學者,所以我想了解一些我可以使用的技術,這些技術可以提高代碼的效率,甚至可以消除我聲明的瘋狂功能。 謝謝!

minimum = 3
maximum = 10

name = input("What is your name? ")

def nameInput():

    if len(name) < minimum:
        print("Name is too small")
        return nameInput()
    elif len(name) > maximum:
            print("Name is too large")
            return nameInput()

nameInput()

food = input("What is your favorite food? ")

def foodInput():

    if len(food) < minimum:
        print("Enter a food name longer than " + (food))
        return foodInput()
    elif len(food) > maximum:
            print("Enter a food name shorter than " + (food))
            return foodInput()

foodInput()

birthday = input("What is your date of birth? (mmddyyyy) ")

nameIndex = name[0:2]
foodIndex = food[2: ]
birthIndex = birthday[0:3]

passcode = nameIndex + foodIndex + birthIndex

print("Your password is " + passcode)

如果您過於簡潔,請嘗試多次使用單個功能,而不要一次使用多個功能

def get_input(variable_name, min_size, max_size, begin, end):                 
    data = input("What is your {}? ".format(variable_name))                   
    if len(data) < min_size:                                                  
        raise ValueError('{} is too small'.format(variable_name.capitalize()))
    elif len(data) > max_size:                                                
        raise ValueError('{} is too big'.format(variable_name.capitalize()))  
    return data[begin:end]                                                    

name_index = get_input("name", 3, 10, 0, 2)                                   
food_index = get_input("food", 3, 10, 2, 100)                                 
birth_index = get_input("date of birth (mmddyyyy)", 3, 10, 0, 3)              
passcode = name_index + food_index + birth_index                              

print("Your passcode is", passcode)                                                                  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM