[编辑]我不确定这是否更好的代码审查,如果是这样,请迁移:)谢谢!
所以我们坐在这里,研究半学术问题.
给定a start
,stop
并step
生成范围元组列表,这样
gen_range(100, 140, 10)
Run Code Online (Sandbox Code Playgroud)
会产生
[(100, 110), (110, 120), (120, 130), (130, 140)]
Run Code Online (Sandbox Code Playgroud)
同时,如果事实它应该工作,比如说,迭代500M整数,步长为100而不是永远.
我提出的实现如下:
def gen_range(start, stop, step):
llist = range(start, stop+step, step)
batch_list = []
if llist[-1] > stop:
llist[-1] = stop
for a, b in enumerate(llist[:-1]):
batch_list.append((llist[a], llist[a+1]))
print batch_list
gen_range(100000000,600000000,100)
Run Code Online (Sandbox Code Playgroud)
但我不能不认为它可以以更有效(也是代码长度方式)的方式完成.有什么建议?
[编辑]
有一件事我忘了指出.如果范围边界不等于该步骤,即您有以下情况:
gen_range(100, 143, 10)
Run Code Online (Sandbox Code Playgroud)
由于range()
内部原因,上边界应该是143,而不是150,因为这里的一些答案会产生.
我正在尝试在詹金斯的管道块中使用环境变量options {}
,但似乎在那个阶段它们没有被推断。我是否遗漏了某些东西,或者是故意的并且没有办法让它发挥作用?
例子:
pipeline {
agent {
docker {
image '...'
label 'docker'
}
}
environment {
MAGIC_APP_NAME = "xxx"
MAGIG_APP_ID = "yyy"
}
options {
connection: gitLabConnection("GitLab-${env.MAGIC_APP_ID}")
}
}
Run Code Online (Sandbox Code Playgroud) 好的,所以这可能有点不正统,或者我只是愚蠢或两者兼而有之:)
我正在尝试一个非常简单的设置,我在一个Process
实例中启动一个瓶子服务器,并在另一个实例中启动一个小的TFTP服务器.
#!/usr/bin/env python
import bottle
import sys
import tftpy
from multiprocessing import Process
def main():
try:
t = Process(target=bottle.run(host='0.0.0.0', port=8080))
t.daemon = True
t.start()
t.join()
h = Process(target=tftpy.TftpServer('/srv/tftp').listen('0.0.0.0', 69))
h.start()
h.join()
except KeyboardInterrupt:
sys.stdout.write("Aborted by user.\n")
sys.exit(1)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
除非我完全疯了,否则我希望它们可以同时启动.实际上,会发生的事情是瓶子启动并锁定整个事物.如果我退出瓶子,TFTP守护程序启动.
我也尝试了类似的threading
模块方法,结果大致相同.
我究竟做错了什么?
我以为我理解python中的分裂和连接,但它不适合我.
让我们说的价值 inp[17] = 'Potters Portland Oregon school of magic'
# a string of data I am pulling from a csv file, the data comes through just fine.
loc = inp[17]
l = loc.split(' ') # I want to split by the space
# I want to filter out all these words say they don't always
# come as "School of magic" so I cant just filter that out they
# could be mixed around at times.
locfilter = ['Potters', …
Run Code Online (Sandbox Code Playgroud) 授予以下代码:
function updateOdometers(odometers) {
setTimeout(function(){
odometers[1].update(odometers[1].value + 10);
}, 500);
}
setInterval(updateOdometers(odometers), 2000);
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,此代码仅更新里程表的值一次,而不是内部延迟每2000ms更新一次.谷歌搜索/ SO-ing并没有给我带来太多结果.有任何想法吗?
我一直在使用go-ping库进行无特权的ping,并在golang中计算各种网络统计信息。代码段为->
func (p *Ping) doPing() (latency, jitter, packetLoss float64, err error) {
timeout := time.Second*1000
interval := time.Second
count := 5
host := p.ipAddr
pinger, cmdErr := ping.NewPinger(host)
if cmdErr != nil {
glog.Error("Failed to ping " + p.ipAddr)
err = cmdErr
return
}
pinger.Count = count
pinger.Interval = interval
pinger.Timeout = timeout
pinger.SetPrivileged(false)
pinger.Run()
stats := pinger.Statistics()
latency = float64(stats.AvgRtt)
jitter = float64(stats.StdDevRtt)
packetLoss = stats.PacketLoss
return
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但现在开始抛出:-“侦听ICMP数据包时出错:套接字:权限被拒绝”错误。有人知道这背后的原因吗?我正在使用的Go版本是go1.7.4。
我仍在学习如何shell脚本,并且面临着使我更容易回显“ Name1”“ Name2” ...“ Name15”的挑战,但我不太确定从哪里开始。的想法,但如果我搞砸了,我不想显得傻。有什么帮助吗?
我实际上还没有尝试过任何东西,但大多数人都只是想过。
#This is what I wrote to start
#!/bin/bash
echo "Name1"
echo "Name2"
echo "Name3"
echo "Name4"
echo "Name5"
echo "Name6"
echo "Name7"
echo "Name8"
echo "Name9"
echo "Name10"
echo "Name11"
echo "Name12"
echo "Name13"
echo "Name14"
echo "Name15"
Run Code Online (Sandbox Code Playgroud)
我的预期结果显然只是为了输出“ Name1”,“ Name2”等。但是我正在寻找一种更具创造性的方法。如果可能的话,可以通过几种方式做到这一点,以便我学习。谢谢。
python ×3
bash ×1
bottle ×1
go ×1
javascript ×1
jenkins ×1
join ×1
list ×1
python-2.7 ×1
range ×1
setinterval ×1
settimeout ×1
shell ×1
split ×1
tuples ×1