在用户输入单词之前始终显示一条空消息

show always an empty message until user enter a word

我有他下面的方法来创建一个新的bucket。

当存储桶名称已经存在时,我收到一条消息 "bucket name already exist"。

但是如果用户不输入任何单词并单击回车我会收到错误消息,但我想再次显示消息 "Enter a bucket name" 直到用户输入某个单词。

你知道我如何验证用户是否至少输入了一个字吗?

def createBucket():
    while True:
        c = boto.s3.connect_to_region(REGION)
        try:
            bucketname = raw_input("Enter bucket name ")
            bucket = c.create_bucket(bucketname)
        except S3CreateError:
            print "bucket name already exist"
            continue
        else:
            break
    return bucketname

检查空字符串:

def createBucket():
    while True:
        c = boto.s3.connect_to_region(REGION)
        try:
            bucketname = raw_input("Enter bucket name ")
            if bucketname: # will be True for any non-empty string
                c.create_bucket(bucketname)
                break
            print("bucketname cannot be an empty string")
        except S3CreateError:
            print "bucket name already exist"
    return bucketname

如果数据有效,您可以break尝试,不需要else或继续。您可能还想将 c = boto.s3.connect_to_region(REGION) 移到 while 之外。