我正在寻找一种方法来使用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'的页面上使用它,那么它将为我提供所有这些标签,如果我在两者上使用它将获得'强'标签.
有没有办法做到这一点?我主要关注的是保留标签的查找顺序.
我的代码用于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标记的组合来检查棋盘是否被占用?
我正在寻找一些代码改进,或者我自己实现的预构建版本,因为我认为可能或者应该是实现我想要的更清洁的方式.
我正在编写一个软件来将吉他标签转换为经典表示法,我需要将标签上的数字转换为相应的音符,这对于从起始字符串构建每个字符串音符的列表非常有用.
我有一个音符列表,(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)
它有效但看起来有点......很长,有没有更好的方法呢?
我正在尝试使用计时器和函数的输出来更新一些静态文本。
代码在这里:代码。
我对 wxPython 知之甚少,这是我不明白的许多事情之一,这令人抓狂,如果我打印 apper 的输出来控制台它可以完美运行,我想要做的就是将打印出来的内容打印到控制台应用于文本。
我究竟做错了什么?
我在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 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)
然而,这给了我一个语法错误,我相信顺序是正确的,这是什么导致这失败?
我试图在 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)
为什么这会绘制一个完整的圆形而不是弧形?