首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3并发循环

Python 3并发循环
EN

Stack Overflow用户
提问于 2015-01-27 17:57:20
回答 2查看 170关注 0票数 0
代码语言:javascript
复制
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的情况下,我才会告诉它断裂?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-27 18:06:09

首先,我看到了一些问题。

并不是所有的代码都在while循环中。所有if语句都应该在while循环中,只需缩进这些语句即可。这可能是它应该看起来的样子:

代码语言:javascript
复制
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必须在一个循环内。

编辑:丢弃顶部。我要重写这个!

代码语言:javascript
复制
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))

这将继续要求正确的输入,直到它得到正确的。

票数 2
EN

Stack Overflow用户

发布于 2015-01-27 18:00:23

试试这个:

代码语言:javascript
复制
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- ')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28176936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档