我如何继续验证字符串字长直到它满足条件?

How do i keep validating string word length until it satisfies the condition?

所以我写了这段代码来从给定的网站生成一个随机的动漫引述 有人能帮我吗我该怎么做才能让代码检查报价是否有一定数量的单词并相应地对其进行验证

例如。如果报价只有 3 个词,我希望它再试一次 另外,如果引用超过 20 个字,我希望它再试一次

我试着为它写了一个 while 循环,但它不起作用任何答案将不胜感激

url = "https://animechan.vercel.app/api/random"
data = requests.get(url).json()

anime = data["anime"]
quote =data["quote"]
character =data["character"]

print("Anime : "+anime)
print(quote)
print(" '"+character+"'")

我想出的 while 循环解决方案

quote = ""
word_list = quote.split()
number = len(word_list)
while number<=3 and number>=15:
    url = "https://animechan.vercel.app/api/random"
    data = requests.get(url).json()

    anime = data["anime"]
    quote =data["quote"]
    character =data["character"]

    print("Anime : "+anime)
    print(quote)
    print(" '"+character+"'")

您的 while 循环需要包含 or语句,最后一个条件应该是number>=20

while number<=3 or number>=20:
    

我认为这可能是您要查找的内容(我假设您想要在发现第一个长度在 3 到 15 个单词之间的引文时停止):

quote = ""
word_list = quote.split()
number = len(word_list)
while number<=3 or number>=15:
    url = "https://animechan.vercel.app/api/random"
    data = requests.get(url).json()

    anime = data["anime"]
    quote =data["quote"]
    character =data["character"]

    word_list = quote.split()
    number = len(word_list)

print("Anime : "+anime)
print(quote)
print(" '"+character+"'")

我只对你的原作做了一些修改:

  1. 您的 while 循环需要从 and 更改为 or(长度永远不能既小于或等于 3 又大于或等于 15,因此循环永远不会得到有机会 运行)
  2. 每次从 API
  3. 中获取新值时,都需要重新计算 number 的值

请记住,虽然您没有在循环块中更新 number,因此条件永远不会改变,即使使用更正的 number<=3 or number>=20 条件也是如此。

最后,如果有人需要同样的东西,这就是解决方案

import requests
number = 0
while number<=3 or number>=30:
    url = "https://animechan.vercel.app/api/random"
    data = requests.get(url).json()

    anime = data["anime"]
    quote =data["quote"]
    character =data["character"]

    print("Anime : "+anime)
    print(quote)
    print(" '"+character+"'")
    word_list = quote.split()
    number = len(word_list)
    print(number)