【发布时间】:2017-10-12 13:10:42
【问题描述】:
这只是我尝试制作的一个简单游戏,它会问你几个问题,然后自动根据答案格式化一个新的密码。
由于我是初学者,我想知道一些我可以使用的技术,这些技术可以提高这段代码的效率,并且可能会删除我已经声明的大量函数。谢谢!
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)
【问题讨论】:
-
有两个功能。我不会认为这是一个“疯狂的数量”。
-
你可以做一个函数
get_input(question, min_len, max_len) -
如果您愿意接受关于代码各个方面的反馈,除了如何缩短代码,您可以将其发布到codereview.stackexchange.com。
-
您是否注意到,如果前两个输入中的任何一个因任一条件(即小于最小值或大于最大值)失败,您将进入无限循环而无需进一步输入?
-
什么循环?这段代码根本没有循环。
标签: python python-3.x optimization simplify