我在Python中遇到了一个非常奇怪的案例.
在Spyder:
>>> 274/365
0.7506849315068493
>>> sys.version
'2.7.6 (default, Dec 20 2013, 14:08:04) [MSC v.1700 64 bit (AMD64)]'
>>>
Run Code Online (Sandbox Code Playgroud)
但是在命令行中它返回0.
>>> 274/365
0
>>> 274/365 * 1.0
0.0
>>> 274/365.0
0.7506849315068493
Run Code Online (Sandbox Code Playgroud)
相同版本的Python.
谁能告诉我这里有什么问题?我是否需要在该计划之前提出其他一些选择?这真是令人恶心,因为如果我通过命令行调用它,我的代码会给出奇怪的结果.
我想知道是否有更好/更好/更快的方法来解决以下问题.
如果给定字符串包含"abc"的外观,则返回True,其中abc不直接以句点(.)开头.所以"qabc"很重要,但"r.abc"不计算在内.
我的解决方案是:
def abc_there(string):
tmp = 0
for i in xrange(len(string)):
if string[i:i+3] == "abc" and string[i-1] != ".":
tmp += 1
return tmp > 0
Run Code Online (Sandbox Code Playgroud)
编辑:
只是为了澄清:
".abc" - >错误
".abcabc" - >是的
只有句点右侧的实例才会被删除.
假设我们有一个类似于的数据集:
DF = pd.DataFrame({'Time':[1,2,3,4,5,6,7,8,9,10],'Value': [1,3,5,5,6,8,9,5,6,7]})
Run Code Online (Sandbox Code Playgroud)
赠送:
Time Value
0 1 1
1 2 3
2 3 5
3 4 5
4 5 6
5 6 8
6 7 9
7 8 4
8 9 6
9 10 7
Run Code Online (Sandbox Code Playgroud)
我想要做的是在"值"中将所有大于5的值设置为0,但仅当"时间"> 5时才结束.最终产品将是:
Time Value
0 1 1
1 2 3
2 3 5
3 4 5
4 5 6
5 6 0
6 7 0
7 8 4
8 9 0
9 10 0
Run Code Online (Sandbox Code Playgroud)
我一直在使用代码:
DF.Value = [0 if x > 5 …Run Code Online (Sandbox Code Playgroud) 如果我有以下变量:
x = 100.0
y = "100.0"
Run Code Online (Sandbox Code Playgroud)
我想将其转换y为任何类型x,但尝试通过lambda进行转换。
a = ('a', 'b', 'c')
print( ''.join(a) )
Run Code Online (Sandbox Code Playgroud)
''第二行是什么意思?字符串模块和这个''对象有什么区别吗?
是否可以使用numpy或其他东西在Python中合并2D数组?我有大约200个2D阵列,都具有相同的尺寸(1024,256),并希望将它们添加到彼此的低端.添加例如3个之后的最终形状应为(1024,768).
我通常使用python shell来测试小东西,而不需要创建一个新的.py文件.
我想测试类似的东西:
>>> def a :
pass
Run Code Online (Sandbox Code Playgroud)
但我不知道怎么去介绍.我试过同样的路线
>>> def a: pass
Run Code Online (Sandbox Code Playgroud)
但是对于我想的缩进,会抛出语法错误
如何找到图案位于线条中间的线条。即在下面的例子中。我只想获取第 8 行,但排除第 1 行和第 5 行 grep“@”
我知道我grep "^@"只会在第一个字符中查找,但如何排除它?
@DD65WKN1:203:H7T67ADXX:2:2216:19936:100494 1:N:0:
GTCGTTCTTCAGGTTCTC
+
FFFFFIIIIFFFIFFFFF
@DD65WKN1:203:H7T67ADXX:2:2216:6629:100501 1:N:0:
TAAAGTAGCAAAAATG
+
FFFFFFFFIFBFIFFF@DD65WKN1:203:H7T67ADXX:2:2216:6629:100501 1:N:0:
TAAAGTAGCAAAAATG
+
FFFFFFFFIFBFIFFF
Run Code Online (Sandbox Code Playgroud)
谢谢
对于数据diffs07和diffs14,在Matlab我可以通过简单地利用获得的数据分级的X和Y坐标:
[ys07, xs07] = hist(-log10(diffs07), 250);
[ys14, xs14] = hist(-log10(diffs14), 250);
Run Code Online (Sandbox Code Playgroud)
在Python,但是,我无法找到一个简单的方法,所以我使用:
xs_diffs = np.linspace(0, 17, 250)
dx = xs_diffs[1]-xs_diffs[2]
ys07 = []
ys14 = []
for x in xs_diffs:
ys07.append( len( [ ty for ty in diffs07 if (-np.log10(ty)-dx/2.0 < x and -np.log10(ty) < x+dx/2.0) ] ) )
ys14.append( len( [ ty for ty in diffs14 if (-np.log10(ty)-dx/2.0 < x and -np.log10(ty) < x+dx/2.0) ] ) )
plt.plot(xs_diffs, ys07, 'r.', xs_diffs, …Run Code Online (Sandbox Code Playgroud) curl 是我在命令行中经常使用的命令。当我使用 ZSH 时,我发现 -# 选项不起作用;该选项在 BASH 中工作正常——见下面的代码:
ZSH:
? curl --progress-bar www.google.com > google.html
######################################################################## 100.0%
? curl -# www.google.com > google.html
zsh: no matches found: -#
BASH:
$ curl --progress-bar www.google.com > google.html
######################################################################## 100.0%
$ curl -# www.google.com > google.html
######################################################################## 100.0%
Run Code Online (Sandbox Code Playgroud)
当然,如果我不想输入完整的选项名称(即 --progress-bar),我可以定义一个别名来解决这个问题。但我很好奇 ZSH 的哪一部分控制了这种行为,以及是否有任何方法可以在我的任何 .zshrc 文件中自定义/重新定义这种行为。非常感谢您提供任何有用的信息!