小编Das*_*pez的帖子

Python BeautifulSoup为findAll提供了多个标签

我正在寻找一种方法来使用findAll按照它们在页面上显示的顺序获取两个标签.

目前我有:

import requests
import BeautifulSoup

def get_soup(url):
    request = requests.get(url)
    page = request.text
    soup = BeautifulSoup(page)
    get_tags = soup.findAll('hr' and 'strong')
    for each in get_tags:
        print each
Run Code Online (Sandbox Code Playgroud)

如果我在一个只有'em'或'strong'的页面上使用它,那么它将为我提供所有这些标签,如果我在两者上使用它将获得'强'标签.

有没有办法做到这一点?我主要关注的是保留标签的查找顺序.

python beautifulsoup

36
推荐指数
2
解决办法
3万
查看次数

python使用any()和all()来检查列表是否包含一组值或另一组

我的代码用于Tic Tac Toe游戏并检查绘制状态,但我认为这个问题在一般意义上可能更有用.

我有一个代表董事会的清单,它看起来像这样:

board = [1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

当一个玩家移动时,他们移动的int被替换为他们的标记('x'或'o'),我已经有检查到位以寻找获胜状态,我不能做的是检查抽签state,其中没有列表值是整数但是尚未设置获胜状态.

我到目前为止的代码:

if any(board) != playerOne or any(board) != playerTwo:
    print 'continue'
elif all(board) == playerOne or playerTwo:
    print 'Draw'
Run Code Online (Sandbox Code Playgroud)

if语句有效,elif没有,我认为问题是我的'或'运算符,我要检查的是:如果主板上的每个项目都是playerOne标记或playerTwo标记,如果我在哪里做码:

elif all(board) == playerOne or all(board) == playerTwo:
Run Code Online (Sandbox Code Playgroud)

我会检查看板上的每个位置是否为playerOne或者板上的每个位置都是playerTwo,它不会.

那么如何通过playerOne标记和playerTwo标记的组合来检查棋盘是否被占用?

python list

32
推荐指数
1
解决办法
6万
查看次数

当列表索引超出范围时,Python会在列表上环绕

我正在寻找一些代码改进,或者我自己实现的预构建版本,因为我认为可能或者应该是实现我想要的更清洁的方式.

我正在编写一个软件来将吉他标签转换为经典表示法,我需要将标签上的数字转换为相应的音符,这对于从起始字符串构建每个字符串音符的列表非常有用.

我有一个音符列表,(a - g#)和一个音品列表(0,21).

注释[fret]在前11个音符中工作正常但在那之后我显然得到了索引错误.

我必须解决的代码是:

notes = ["a", "a#", "b", "c", "c#", "d", "e", "f", "f#", "g", "g#"]
note = 21
while note >= len(notes):
    note -= 11
    try:
        print notes[note]
    except:
        continue
Run Code Online (Sandbox Code Playgroud)

它有效但看起来有点......很长,有没有更好的方法呢?

python list

9
推荐指数
2
解决办法
2万
查看次数

wxPython 使用计时器每 x 秒/分钟更新一次 StaticText

我正在尝试使用计时器和函数的输出来更新一些静态文本。

代码在这里:代码

我对 wxPython 知之甚少,这是我不明白的许多事情之一,这令人抓狂,如果我打印 apper 的输出来控制台它可以完美运行,我想要做的就是将打印出来的内容打印到控制台应用于文本。

我究竟做错了什么?

python wxwidgets wxpython

2
推荐指数
1
解决办法
2653
查看次数

python返回功能

我在Python中遇到语法错误,错误:

SyntaxError: 'return' outside function
Run Code Online (Sandbox Code Playgroud)

这似乎是不言自明的,但据所知,返回是函数内部.

这是我的代码:

def getLinks(self, url, fandom, soup):
    links = []

    searchElementDict = {
    'aff':'select', 'fcwd':'select', 'ffn':'select', 'tthm':'select', 'lua':'select', 'ffa':'select', 
    'hpfd':'select', 'phns':'select', 'mbba':'div', 'avgf':'div', 'mugn':'select', 'hpffa':'select',
    'hpff':'select',
    }
    if fandom in searchElementDict:
        searchElement = searchElementDict[fandom]

    searchElementForDict = {
    'aff':'name', 'fcwd':'name', 'ffn':'title', 'tthm':'name', 'lua':'class', 'ffa':'class',
    'hpfd':'name', 'phns':'name', 'mbba':'id', 'avgf':'id', 'mugn':'name', 'hpffa':'name',
    'hppf':'name',
    }
    if fandom in searchElementForDict:
        searchElementFor = searchElementForDict[fandom]

    withValueDict = {
    'aff':'chapnav', 'fcwd':'goto', 'ffn':'Chapter Navigation', 'tthm':'chapnav', 'lua':'textbox',
    'ffa':'locationSelect', 'hpfd':'sid', …
Run Code Online (Sandbox Code Playgroud)

python syntax return function

0
推荐指数
1
解决办法
2370
查看次数

Python random.choice([i if len(i)== 9 for i in words])列表理解上的语法错误

Python 2.7

Ubuntu 12.04

我试图改变这个:

nine = []
for each in word_list:
    if len(each) == 9:
        nine.append(each)
return random.choice(nine)
Run Code Online (Sandbox Code Playgroud)

进入:

return random.choice([i if len(i) == 9 for i in words])
Run Code Online (Sandbox Code Playgroud)

然而,这给了我一个语法错误,我相信顺序是正确的,这是什么导致这失败?

python list-comprehension list

0
推荐指数
1
解决办法
106
查看次数

Python,pygame,如何画圆弧

我试图在 pygame 中绘制一条弧线,弧线的实际大小和位置并不重要,目前我得到的只是一个椭圆。

我的代码:

import pygame
import sys

pygame.init()
size = width, height = 400, 600
screen = pygame.display.set_mode(size)

while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()


    screen.fill((0,0,0))

    pygame.draw.arc(screen, (255, 255, 255), (50, 50, 50, 50), 10, 20, 1)

    pygame.display.flip()
Run Code Online (Sandbox Code Playgroud)

为什么这会绘制一个完整的圆形而不是弧形?

python pygame draw

0
推荐指数
1
解决办法
9357
查看次数