我刚刚重新阅读Python 3.0中的新功能,它指出:
round()函数舍入策略和返回类型已更改.确切的中途情况现在四舍五入到最接近的偶数结果而不是零.(例如,round(2.5)现在返回2而不是3.)
和圆形文件:
对于支持round()的内置类型,值被舍入到10的最接近的倍数到幂减去n; 如果两个倍数相等,则向均匀选择进行舍入
所以,在v2.7.3下:
In [85]: round(2.5)
Out[85]: 3.0
In [86]: round(3.5)
Out[86]: 4.0
Run Code Online (Sandbox Code Playgroud)
正如我所料.但是,现在在v3.2.3下:
In [32]: round(2.5)
Out[32]: 2
In [33]: round(3.5)
Out[33]: 4
Run Code Online (Sandbox Code Playgroud)
这似乎是违反直觉的,与我对四舍五入的理解相反(并且必然会绊倒人).英语不是我的母语,但在我读到这篇文章之前,我以为我知道舍入的含义是什么: - /我确信在引入v3的时候一定有一些关于这个的讨论,但是我无法找到一个很好的理由我的搜索.
我在这里错过了什么?
更新:@ Li-aungYip的评论"银行家的舍入"给了我正确的搜索词/搜索关键字,我发现了这个问题:为什么.NET使用银行家的舍入作为默认值?所以我会仔细阅读.
在python中说你有
s = "string"
i = 0
print s+i
Run Code Online (Sandbox Code Playgroud)
会给你错误,所以你写
print s+str(i)
Run Code Online (Sandbox Code Playgroud)
没有得到错误.
我认为这是处理int和字符串连接的一种笨拙的方式.甚至Java也不需要显式转换为String来进行这种连接.有没有更好的方法来进行这种连接,即没有Python中的显式转换?
说我在这里有这个列表:
list = [a, b, c, d, e, f, g]
Run Code Online (Sandbox Code Playgroud)
我如何删除说索引2, 3, 4
,5
同时?
pop不接受多个值.我怎么做呢?
我已按照调整EC2卷大小的步骤进行操作
旧卷为5GB,我创建的卷为100GB现在,当我重新启动实例并运行时df -h I
仍然看到这个
Filesystem Size Used Avail Use% Mounted on
/dev/xvde1 4.7G 3.5G 1021M 78% /
tmpfs 296M 0 296M 0% /dev/shm
Run Code Online (Sandbox Code Playgroud)
这是我跑步时得到的
sudo resize2fs /dev/xvde1
The filesystem is already 1247037 blocks long. Nothing to do!
Run Code Online (Sandbox Code Playgroud)
如果我跑,cat /proc/partitions
我明白了
202 64 104857600 xvde
202 65 4988151 xvde1
202 66 249007 xvde2
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果我遵循正确的步骤xvde应该具有与xvde1相同的数据,但我不知道如何使用它
如何使用新卷或卸载xvde1并挂载xvde?
我无法理解我做错了什么
我也试过了 sudo ifs_growfs /dev/xvde1
xfs_growfs: /dev/xvde1 is not a mounted XFS filesystem
Run Code Online (Sandbox Code Playgroud)
顺便说一下,这是一个带有centos 6.2 x86_64的linux盒子
在此先感谢您的帮助
是否可以使用PIL获得像素的RGB颜色?我正在使用此代码:
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
Run Code Online (Sandbox Code Playgroud)
但是,它仅输出一个数字(例如0
或1
)而不是三个数字(例如,60,60,60
对于R,G,B).我想我不了解这个功能.我喜欢一些解释.
非常感谢.
我最近(终于?)开始使用.format()
并且有一个可能有点模糊的问题.
特定
res = ['Irene Adler', 35, 24.798]
Run Code Online (Sandbox Code Playgroud)
和
(1) print('{0[0]:10s} {0[1]:5d} {0[2]:.2f}'.format(res))
(2) print('{:{}s} {:{}d} {:{}f}'.format(res[0], 10, res[1], 5, res[2], .2))
Run Code Online (Sandbox Code Playgroud)
工作得很好,同时印刷:
Irene Adler 35 24.80
Irene Adler 35 24.80
Run Code Online (Sandbox Code Playgroud)
我不知道我可以像(1)那样处理清单.我之前看到过带有旧%
格式的字段宽度参数(2).
我的问题是想要做这样的事情,它结合了(1)和(2):
(3) print('{0[0]:{}s} {0[1]:{}d} {0[2]:{}f}'.format(res, 10, 5, .2))
Run Code Online (Sandbox Code Playgroud)
但是,我无法做到这一点,我无法从文档中找出这是否可行.提供要打印的列表和宽度的参数会很好.
顺便说一句,我也试过这个(没有运气):
args = (10, 5, .2)
(4) print('{0[0]:{}s} {0[1]:{}d} {0[2]:{}f}'.format(res, args))
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我得到:
D:\Users\blabla\Desktop>python tmp.py
Traceback (most recent call last):
File "tmp.py", line 27, in <module>
print('{0[0]:{}s} {0[1]:{}d} {0[2]:{}f}'.format(res, 10, 5, .2))
ValueError: cannot switch from …
Run Code Online (Sandbox Code Playgroud) 我有两个zip文件,它们都可以通过Windows资源管理器和7-zip打开.
然而,当我用Python的zipfile模块[zipfile.ZipFile("filex.zip")]打开它们时,其中一个打开但另一个给出错误" BadZipfile: File is not a zip file
".
我确保后者是一个有效的Zip文件,用7-Zip打开并查看其属性(7Zip.ZIP说).当我用文本编辑器打开文件时,前两个字符是"PK",表明它确实是一个zip文件.
我正在使用Python 2.5,并且真的没有任何线索如何解决这个问题.我已经尝试过Windows和Ubuntu,并且两个平台都存在问题.
更新: Windows上的Python 2.5.4的回溯:
Traceback (most recent call last):
File "<module1>", line 5, in <module>
zipfile.ZipFile("c:/temp/test.zip")
File "C:\Python25\lib\zipfile.py", line 346, in init
self._GetContents()
File "C:\Python25\lib\zipfile.py", line 366, in _GetContents
self._RealGetContents()
File "C:\Python25\lib\zipfile.py", line 378, in _RealGetContents
raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file
Run Code Online (Sandbox Code Playgroud)
基本上,当_EndRecData
调用函数从中央目录结束"记录中获取数据时,注释长度检出失败[endrec [7] == len(comment)].
函数中locals的值_EndRecData
如下:
END_BLOCK: 4096,
comment: '\x00',
data: '\xd6\xf6\x03\x00\x88,N8?<e\xf0q\xa8\x1cwK\x87\x0c(\x82a\xee\xc61N\'1qN\x0b\x16K-\x9d\xd57w\x0f\xa31n\xf3dN\x9e\xb1s\xffu\xd1\.....', (truncated)
endrec: …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法将NumPy数组传递给Matlab.
我已经设法通过使用数组将数组存储到图像中scipy.misc.imsave
然后使用它来加载它imread
,但这当然会导致矩阵包含0到256之间的值而不是"实际"值.
将此矩阵的乘积除以256,并且原始NumPy数组中的最大值给出了正确的矩阵,但我觉得这有点单调乏味.
有更简单的方法吗?
当我尝试启动或重新启动我的apache服务器时,我得到以下消息:
Syntax error on line 162 of /etc/apache2/apache2.conf:
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
failed!
Run Code Online (Sandbox Code Playgroud)
我尝试在谷歌上找到此错误并修复它:
http://linuxindetails.wordpress.com/2009/12/02/invalid-command-order-perhaps-misspelled-or-defined-by-a-module-not-included-in-the-server-configuration-failed/
我收到错误: Module authz_host does not exist!
那么,有些身体帮我解决了吗?
谢谢 !
我有一个列表列表:类似于:
data = [[240, 240, 239],
[250, 249, 237],
[242, 239, 237],
[240, 234, 233]]
Run Code Online (Sandbox Code Playgroud)
我希望将其平均化
[average_column_1, average_column_2, average_column_3]
Run Code Online (Sandbox Code Playgroud)
我的代码就像不太优雅.这是通过列表的天真方式,将总和保持在单独的容器中,然后除以元素的数量.
我认为有一种pythonic方式来做到这一点.有什么建议?谢谢