小编Jay*_*sby的帖子

从字符串数组中删除最后一项

我正在研究一个简单的二十一点游戏项目.首先我创建了一系列卡片:

string[] deck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", };
Run Code Online (Sandbox Code Playgroud)

比我乘以4并给出deckNumber:

newDeck = Enumerable.Repeat(deck, deckNumber*4).SelectMany(x => x).ToArray();
Run Code Online (Sandbox Code Playgroud)

当我想从数组中删除最后一张卡时我应用此:

newDeck = newDeck.Where(w => w != newDeck.Last()).ToArray();
Run Code Online (Sandbox Code Playgroud)

所以问题是代码不会从数组中删除最后一项,就像有多个数组一样,并从中删除所有最后一个元素.例如,有一个套牌:

cards: 2 3 4 5 6 7 8 9 10 J Q K A 2 3 4 5 6 7 8 9 10 J Q K A 2 3 4 5 6 7 8 9 10 J Q K A 2 3 4 …
Run Code Online (Sandbox Code Playgroud)

c# arrays blackjack

38
推荐指数
4
解决办法
6万
查看次数

为Google Speech API创建合适的WAV文件

我正在使用pyaudio将我的声音录制为wav文件.我正在使用以下代码:

def voice_recorder():
    FORMAT = pyaudio.paInt16
    CHANNELS = 2
    RATE = 22050
    CHUNK = 1024
    RECORD_SECONDS = 4
    WAVE_OUTPUT_FILENAME = "first.wav"

    audio = pyaudio.PyAudio()

    # start Recording
    stream = audio.open(format=FORMAT, channels=CHANNELS,
                    rate=RATE, input=True,
                    frames_per_buffer=CHUNK)
    print "konusun..."
    frames = []

    for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
        data = stream.read(CHUNK)
        frames.append(data)
    #print "finished recording"


    # stop Recording
    stream.stop_stream()
    stream.close()
    audio.terminate()

    waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
    waveFile.setnchannels(CHANNELS)
    waveFile.setsampwidth(audio.get_sample_size(FORMAT))
    waveFile.setframerate(RATE)
    waveFile.writeframes(b''.join(frames))
    waveFile.close()
Run Code Online (Sandbox Code Playgroud)

我正在使用以下Google Speech API代码,它基本上将WAV文件中的语音转换为文本:https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/api-client/transcribe. PY

当我尝试将由pyaudio生成的wav文件导入Google的代码时,我收到以下错误:

googleapiclient.errors.HttpError: <HttpError …
Run Code Online (Sandbox Code Playgroud)

python wav pyaudio google-speech-api

9
推荐指数
1
解决办法
1853
查看次数

从字典中选择随机值

假设我有这本词典:

dict = {'a': 100, 'b': 5, 'c': 150, 'd': 60};
Run Code Online (Sandbox Code Playgroud)

我得到了这个代码具有最大价值的密钥:

most_similar = max(dic.iteritems(), key=operator.itemgetter(1))[0]
Run Code Online (Sandbox Code Playgroud)

它返回 'c'

但我想从前3个最大值中选择一个随机密钥.根据这本词典,前三名是:

c
a
d
Run Code Online (Sandbox Code Playgroud)

它应该从中随机选择一个键.我怎样才能做到这一点?

python random dictionary

8
推荐指数
2
解决办法
1010
查看次数

在迭代所有表单时选择正确的表单

我想用机械化在多个网站上提交表单.通常我不能确切地知道表单名称或表单ID,但我知道我想要提交的输入名称.

假设有一个网站里面有几种形式.我的代码应该检查所有表单,如果其中一个表单有一个名为"email"的输入值,它将提交该表单.如果有多个表单,它将全部提交.

我正在测试的网站有两种形式.其中一个是登录表单,另一个是订阅表单.它们都有"电子邮件"输入值.所以我的代码应该提交两个表单.

我正在尝试使用此代码块实现它:

for forms in br.forms():
                if not forms.find_control(name="email"):
                    continue
                br.select_form(nr=0)        
                br.form["email"] = email
                br.submit()
                print "Success: ", link
Run Code Online (Sandbox Code Playgroud)

此代码打印两条成功消息,但不是订阅.以下代码适用于提交订阅表单,因为我设置了表单名称:

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6')]
br.open("http://example.com")
br.select_form("subscribe")
br.form["email"] = email
br.submit()
Run Code Online (Sandbox Code Playgroud)

那么第一个代码有什么问题?如何选择两个表格并提交值?可能问题在于表格选择部分:

br.select_form(nr=0)
Run Code Online (Sandbox Code Playgroud)

编辑:我用Wireshark检查了它的POST请求.它似乎填充了第一种形式2次.当我改变nr=0nr=1它的工作原理,因为正确的形式是第二种形式.

python mechanize

7
推荐指数
1
解决办法
144
查看次数

在debian下编译的python文件与ubuntu兼容

我正在使用nuitka来编译我的python代码.我使用--module选项在其他python文件中导入我的代码:

nuitka --module --recurse-none file.py
Output: file.so
Run Code Online (Sandbox Code Playgroud)

如果我不需要导入代码并且只需要在终端上运行,那么我正在遵循常规编译过程:

nuitka --recurse-none file.py
Output: file.exe
Run Code Online (Sandbox Code Playgroud)

我正在Debian下编译这些文件,他们在Debian下没有问题.当我将这些文件移动到Ubuntu系统时,我有时会遇到Segmentation Fault错误.是因为Debian下的编译python代码与Ubuntu不兼容,还是我犯了个人错误(比如缺少库等)

python linux nuitka

7
推荐指数
1
解决办法
274
查看次数

变量之间的算术运算

我是初学者php.我试图在两个变量之间应用一些随机算术运算

$operators = array(
    "+",
    "-",
    "*",
    "/"
    );

$num1 = 10;
$num2 = 5;

$result = $num1 . $operators[array_rand($operators)] . $num2;

echo $result;
Run Code Online (Sandbox Code Playgroud)

它打印这样的值

10+5
10-5
Run Code Online (Sandbox Code Playgroud)

如何编辑我的代码才能执行此算术运算?

php

4
推荐指数
1
解决办法
1595
查看次数

如何使用 selenium 删除 google chrome cookie?

我正在尝试删除所有 google chrome cookie。我正在使用在 selenium 网站上找到的这段代码:

var driver = new ChromeDriver();
driver.Manage().Cookies.DeleteAllCookies();
Run Code Online (Sandbox Code Playgroud)

但是当我执行它时,会出现一个带有此文本的 dos 页面

Starting ChromeDriver 2.13.307647 (5a7d0541ebc58e69994a6fb2ed930f45261f3c29) on
port 25398
Only local connections are allowed.
Run Code Online (Sandbox Code Playgroud)

谷歌浏览器启动。我错过了什么?如何删除存储的 cookie?

cookies selenium google-chrome

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

使用 beautifulsoup get_text()

我可以使用以下代码块从网站解析我需要的字段:

response = requests.get(index_url)
soup = bs4.BeautifulSoup(response.text, "lxml")
poem = soup.select('div.siir p[id^=siir]')
print poem
Run Code Online (Sandbox Code Playgroud)

但它打印时带有 HTML 标签。我正在尝试使用get_text()函数。当我尝试像这样使用时:

print poem.get_text()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

AttributeError: 'list' object has no attribute 'get_text'
Run Code Online (Sandbox Code Playgroud)

我也尝试这样使用:

poem = soup.select('div.siir p[id^=siir]').get_text()
Run Code Online (Sandbox Code Playgroud)

我再次遇到同样的错误。解析正确的字段后如何消除 HTML 标签?

python beautifulsoup

4
推荐指数
1
解决办法
7660
查看次数

如何正确使用Switch-Case减少线路

我正在做一个二十一点游戏项目.我有一种helper()方法可以帮助用户完成他们的行为.例如:

经销商的上牌是:8 玩家手牌总数是:16

球员不确定,他应该击中还是留下.helper()功能在这里采取行动.

它基本上计算了甲板上好卡的数量(playerTotal+ goodcard<= 21)

所以我正在考虑以这种方式做到这一点(伪代码)

public void helper() {

    remain = 21 - playerTotal;

    if (remain == 1) {
        for (int i = 0; i < deck.last(); i++) {
            switch (deck[i]) {
                case A: numOfGood += 1
                default: numOfBad +=1
            }
        }
    }
    else if (remain == 2) {
        for (....) {
            switch (deck[i]) {
                case A: numOfGood += 1
                case 2: numOfGood += 1
                default: numOfBad +=1 …
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
1
解决办法
86
查看次数

re.findall() 与它的发现不匹配

我有一个文本文件,其中包含如下行:

<pattern number=1 theme=pseudo>
<pattern number=2 theme=foo>
<pattern number=3 theme=bar>
Run Code Online (Sandbox Code Playgroud)

我正在使用此函数选择一条随机线:

def find_random_pattern(theme):
    found_lines = []
    pattern = open('poempatterns.txt','r')
    for line in pattern:
        found = re.findall("theme="+theme,line)
        for match in found:
            found_lines.append(line)

    selectedline = random.choice(found_lines)
    return selectedline
Run Code Online (Sandbox Code Playgroud)

假设它返回了<pattern number=1 theme=pseudo>

当我用这个条件检查它时,它返回False

if find_random_pattern("pseudo") == "<pattern number=1 theme=pseudo>":
    return True
else:
    return False
Run Code Online (Sandbox Code Playgroud)

为什么这两个字符串不匹配?

python regex string

3
推荐指数
1
解决办法
1374
查看次数