python - 辅助for循环

时间:2014-02-28 01:48:05

标签: python loops

我是Python的初学者

我整天都在敲我的键盘只是一件事。

我正在登录网站。如果您已成功登录,则您的用户名将在Cookie中。

#other stuff
cookies=requests.Session()
def loggedIn()
     global cookie
     for cookie in cookies.cookies:
             cookie = cookie.value

     if username in cookie:
             print 'yay'
     if username not in cookie:
             print 'goodbye cruel world'

loggedIn()
raw_input()

如果您已成功登录,则cookie将具有3个值

token
username
blabla

如果您未成功登录,则cookie将具有2个值

token
blabla 

所以我使用正确的密码运行代码,这就是我得到的:

goodbye cruel world
yay
goodbye cruel world

密码错误:

yay
goodbye cruel world

这就是我想要的:

如果用户名在cookie中,它将打印一次并结束循环

如果Cookie中的用户名为,则会打印一次并结束循环。

我真的很困惑。

4 个答案:

答案 0 :(得分:3)

也许是这样的?

cookies = requests.Session()

def loggedIn():
  for cookie in cookies.cookies:
    if 'username' in cookie.value
      return True
  return False

if loggedIn():
  print 'yay'
else:
  print 'goodbye'
raw_input()

答案 1 :(得分:0)

 for cookie in cookies.cookies:
         cookie = cookie.value

查看该代码。它正在修改变量cookie,其范围在for中。

答案 2 :(得分:0)

当你调用for循环时,如果你更改它正在调用的变量,它将使用更改的变量,如下所示:

>>> forever = ['a']
>>> for k in forever:
...    print k
...    forever.append(k)
...
a
a
a
a
a
...

这使它成为while循环。如果要停止它,请事先将变量设置为其他内容:

>>> forever = ['a']
>>> duplicate = forever
>>> for k in duplicate:
...    print k
...    forever.append(k)
...
a
>>> 

因此,尝试更改for循环,希望能够清理所有内容

答案 3 :(得分:0)

 if username in cookie:
         print 'yay'
 else:
         print 'goodbye cruel world'

会更有意义。这也许呢?

 for cookie in cookies.cookies:
         if('user' in cookie):
             print 'User Valid'
 print 'User Invalid'