什么是……”是“?

2024-10-17 06:30:47 发布

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

我是python新手,我正在尝试制作一个Runescape计算器,因为我很无聊。无论如何,我熟悉urllib模块,我用它来检索帐户信息在线。这个是我的代码:

import urllib
input("Rune Scape EOC Calcalator")
print ("Please Input Your Skills or Enter Your Username (If You Enter Your")
print ("Username All Your F2P Skills Have To Be Level 15) :")
UsrSkill = input("Do You Want To Enter Your Skills Or Your Username?   ")
if UsrSkill == "Skills" :
    DefSkill = int(input("Defence    :"))
    StrSkill = int(input("Strength   :"))
    AttkSkill = int(input("Attack      :"))
    RngeSkill = int(input("Ranged      :"))
    MageSkill = int(input("Magic      :"))
    SmmnSkill = int(input ("Summoning  :"))
if UsrSkill == "Username" :
       usrname = input("What Is Your Username")
       j = ("http://xptracker.com/index.php?username=",usrname"&Submit=GO&comparename=&mode=regular")
   with urllib.request.urlopen(J) as resp :
       data = resp.read()
   resp.code
   'Defence' in data is DefSkill
   'Strength' in data is StrSkill
   'Attack' in data is AttkSkill
   'Ranged' in data is RngeSkill
   'Magic' in data is MageSkill
   'Summoning' in data is SmmnsSkill
x = [StrSkill, AttkSkill, RngeSkill, MageSkill, SmmnSkill]
OfnsiveSkill = max(x)
CbLvl = OfnsiveSkill + DefSkill + int(2)
print ("You Are Level:", CbLvl)

这就是问题所在:它不断出现一条错误消息,说:

Invalid Syntax
... usrname"&Submit=GO&comparename=&mode=regular**"**)

当我取出“用户名位”时,它会出现以下结果:

x = [StrSkill, AttkSkill, RngeSkill, MageSkill, SmmnSkill]
NameError: name 'StrSkill' is not defined

据我所知,我失败了很多次,我想这是因为我的立场。 谢谢您。 救命啊?你知道吗


Tags: ininputyourdataisusernameurllibskills
3条回答

您的代码有几个错误,我建议您从头开始,而不是修复它们。既然你问了,我就给你解释一下

is可能并不像你想象的那样,它是用来比较两个变量的。你知道吗

is是一个comparator语句,返回第一个对象是否与第二个对象是同一实例,例如a is a将返回True,因为它们是完全相同的对象。你知道吗

>>>2.0 is 2
False
>>>2.0 == 2
True

这个

j = ("http://xptracker.com/index.php?username=",usrname \
      "&Submit=GO&comparename=&mode=regular")

很可能是:

j = ("http://xptracker.com/index.php?username=" + usrname + \
     "&Submit=GO&comparename=&mode=regular")

太棒了,呸。。。但是,有些错误如下:

j = ("http://xptracker.com/index.php?username=",usrname"&Submit=GO&comparename=&mode=regular")

试着用另一种方式构建你的字符串j。例如,在.format()的帮助下:

j = "http://xptracker.com/index.php?username={username}&Submit=GO&comparename=&mode=regular".format(username=usrname)

如您所见,我们可以省略方括号并使用{username}作为关键字占位符,它可以用适当的string.format()填充,例如username=username

另外,我认为在这一节中,您丢失了缩进:

with urllib.request.urlopen(J) as resp :
   data = resp.read()
resp.code

如果用户选择输入“Username”而不是“Skills”,则StrSkill可以是未定义的。你知道吗

相关问题 更多 >