我正在研究一个简单的二十一点游戏项目.首先我创建了一系列卡片:
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) 我正在使用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) 假设我有这本词典:
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)
它应该从中随机选择一个键.我怎样才能做到这一点?
我想用机械化在多个网站上提交表单.通常我不能确切地知道表单名称或表单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=0与nr=1它的工作原理,因为正确的形式是第二种形式.
我正在使用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不兼容,还是我犯了个人错误(比如缺少库等)
我是初学者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)
如何编辑我的代码才能执行此算术运算?
我正在尝试删除所有 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?
我可以使用以下代码块从网站解析我需要的字段:
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 标签?
我正在做一个二十一点游戏项目.我有一种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) 我有一个文本文件,其中包含如下行:
<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)
为什么这两个字符串不匹配?