while True:
name = input('Enter Texture Pack Name- ')
name_length = len(name)
if len(name) <= 0:
print ('You didnt write anything, try again.')
if len(name) == 1:
print ('Thats not enough, try again.')
if len(name) >= 18:
print ('Thats to much, try again.')
if int(name_length) >= 2:
break
print (('Texture Pack- %s') % (name))所以我试图对名字的描述做两个限制,它太小,太大。我将中断设置为>= 2,所以任何超过18最大值的限制都会被打破。只有在长度大于2,但小于18的情况下,我才会告诉它断裂?
发布于 2015-01-27 18:06:09
首先,我看到了一些问题。
并不是所有的代码都在while循环中。所有if语句都应该在while循环中,只需缩进这些语句即可。这可能是它应该看起来的样子:
while True:
name = input("Enter Texture Pack Name- ")
name_length = len(name)
if name_length <= 0 or >=18:
print("There's an error!")
break
else:
print("texture pack- %s" % (name)希望这能帮上忙。正如您所知,break必须在一个循环内。
编辑:丢弃顶部。我要重写这个!
while True:
try:
name = input("Enter texture pack name: ")
name_length = int(len(name))
if name_length <= 0:
raise ValueError("Nothing was written!")
elif name_length == 1:
raise ValueError("Only one character!")
elif name_length >= 18:
raise ValueError("More than 18!")
else:
break
print ("Texture pack: %s" % (name))这将继续要求正确的输入,直到它得到正确的。
发布于 2015-01-27 18:00:23
试试这个:
name = input('Enter Texture Pack Name- ')
while len(name) <= 2 or len(name) >= 18:
print('Error - texture pack name length should be between 2 and 17 characters')
name = input('Enter Texture Pack Name- ')https://stackoverflow.com/questions/28176936
复制相似问题