这个输入代码有什么问题?python中的浏览器启动程序

2024-04-26 22:13:58 发布

您现在位置:Python中文网/ 问答频道 /正文

这是代码……………..当它运行时,它将只运行redditNeed==1,并打开5个窗口。当我点击除主页以外的任何其他页面时,它会给我webbrowser没有定义

redditNeed = input("which subreddit do you want to reach; front page{1}, athesism{2}, bitcoin{3}, politics{4}, worldnews{5}")

if redditNeed == 1:
    import webbrowser
    url="http://reddit.com"
    webbrowser.open(url)

if redditNeed == 2:
    import webbrowser
    url="http://reddit.com/r/atheism"
    webbrowser.open(url)

if redditNeed == 3:
    import webbrowser
    url="http://reddit.com/r/bitcoin"
    webbrowser.open(url)

if redditNeed == 4:
    import webbrowser
    url="http://www.reddit.com/r/politics"
    webbrowser.open(url)

if redditNeed == 5:
    import webbrowser
    url="http://www.reddit.com/r/worldnews"
    webbrowser.open(url)

Tags: 代码importcomhttpurlifwww主页
2条回答

有几件事值得指出

1)开始时只需导入webbrowser一次

2)对每个条件使用elif语句而不是if语句

3)您将字符串与int进行比较,这永远不会是真的,因此您可以将redditneed转换为类似so int(redditneed)的int,或者将其与“2”之类的字符串进行比较,而不是2。你知道吗

4)如果你总是要打开一个网页,只需在ifs的末尾打开它,而不是在每个If语句中打开

5)我从您的评论中看到,您运行的是Python2.7,这意味着您不应该使用输入,应该使用原始输入

6)您请求帮助时没有向我们提供更多细节,例如您的python版本或错误代码,这意味着我们更难帮助您

7)最糟糕的是,你问了完全相同的问题一个小时后,你以前问它在这里没有尝试任何新的:What is wrong with this input code?? and browser launcher in python

下面是一些等效代码的示例

import webbrowser

redditNeed = raw_input("which subreddit do you want to reach; front page{1}, atheism{2}, bitcoin{3}, politics{4}, worldnews{5}")
redditNeed = int(redditNeed)

if   redditNeed == 1: url="http://reddit.com"
elif redditNeed == 2: url="http://reddit.com/r/atheism"
elif redditNeed == 3: url="http://reddit.com/r/bitcoin"
elif redditNeed == 4: url="http://www.reddit.com/r/politics"
else:                 url="http://www.reddit.com/r/worldnews"

webbrowser.open(url)

您正在比较字符串(从输入返回的值)和整数。尝试更改为:

import webbrowser

# For python2.7, use raw_input(...)
redditNeed = input("which subreddit do you want to reach; front page{1}, athesism{2}, bitcoin{3}, politics{4}, worldnews{5}")

if redditNeed == "1":
    url="http://reddit.com"
    webbrowser.open(url)

if redditNeed == "2":
    url="http://reddit.com/r/atheism"
    webbrowser.open(url)

if redditNeed == "3":
    url="http://reddit.com/r/bitcoin"
    webbrowser.open(url)

if redditNeed == "4":
    url="http://www.reddit.com/r/politics"
    webbrowser.open(url)

if redditNeed == "5":
    url="http://www.reddit.com/r/worldnews"
    webbrowser.open(url)

或者像@GWW建议的那样,使用int(...)将输入转换为整数

此外,不在代码中间进行导入是一种很好的做法,只需在文件开始时进行导入即可。你知道吗

相关问题 更多 >