【问题标题】:How do I execute a function inside a while loop in python?如何在python的while循环中执行函数?
【发布时间】:2021-10-04 03:50:13
【问题描述】:

我正在尝试制作一个机器人,当它有一定的浏览量时,它会打开一个 youtube 视频 但我不知道如何执行该功能

我的代码:

    import webbrowser
    import time
    from bs4 import BeautifulSoup
    import requests
    import time
    import pafy
    import os
    import sys
    import subprocess
    import youtube_dl
    
    # ignore the million imports
    
    #(999999995, 1000000000)
    def value():
        url = "https://www.youtube.com/watch?v=UTHLKHL_whs"
        video = pafy.new(url)
        val = video.viewcount
        if val < 99999:
            print(val)
            time.sleep(5)
    value()
    
    
    while True:
         #what do i need to put here to run "value" over and over again?
    
    
    
    else:
        if value > 99999:
            webbrowser.open('https://www.youtube.com/watch?v=UTHLKHL_whs')

感谢大家的帮助!

【问题讨论】:

  • 您是否一遍又一遍地观看同一个视频?并等到它达到一定的浏览量再打开它?

标签: python python-3.x list api youtube


【解决方案1】:

如果你的 value 方法有效,那么你可以像这样重写代码:

import webbrowser
import time
from bs4 import BeautifulSoup
import requests
import time
# Millions of other imports

def value():
    url = "https://www.youtube.com/watch?v=UTHLKHL_whs"
    video = pafy.new(url)
    val = video.viewcount
    return val

while True:
    count = value()
    if count > 99999:
        webbrowser.open('https://www.youtube.com/watch?v=UTHLKHL_whs')
        break
    else:
        print(val)
        time.sleep(5)

【讨论】:

  • 谢谢老兄,修复了那部分。但如果我输入的数字高于它拥有的视图数量,它会给我错误: Traceback(最近一次调用最后一次):文件“C:\Users\m8\Desktop\ffs\botaim\relodEx2.py”,第 24 行,在 print(val) NameError: name 'val' is not defined
  • @Massive_M8 你能详细告诉我吗?如果您愿意,您可以发布带有屏幕截图和错误回溯的详细问题。我会尽力解决的
【解决方案2】:

这能回答问题吗?

def value():
    url = "https://www.youtube.com/watch?v=UTHLKHL_whs"
    video = pafy.new(url)
    val = video.viewcount
    if val > 99999:
        return val
    
    
while True:
    values = value()
    if values > 99999:
        webbrowser.open('https://www.youtube.com/watch?v=UTHLKHL_whs')
        break

【讨论】:

  • L5 上的 if 语句的目的是什么?如果在您启动脚本之前视频的观看次数已经达到 99999+,则该函数将不返回任何值。
猜你喜欢
  • 2019-10-12
  • 2012-08-24
  • 2016-04-30
  • 2021-06-30
  • 1970-01-01
  • 2017-06-30
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
相关资源
最近更新 更多