格式化要打印的数字时,正在使用点后面的冒号格式化12位数字.为什么会这样?这是AIX系统上的Python 2.7.
$ uname -a ; /opt/bin/python2.7
AIX myserver 1 6 00F6A5CC4C00
Python 2.7.12 (default, Sep 29 2016, 12:02:17) [C] on aix5
Type "help", "copyright", "credits" or "license" for more information.
>>> '{0:.10f}'.format(123456789012)
'123456789011.:000000000'
>>> from decimal import Decimal
>>> u=123456789012
>>> print "%.10f" % Decimal(u)
123456789011.:000000000
Run Code Online (Sandbox Code Playgroud)
更多的信息:
它不是每12位数字:
>>> for x in range(123456789010,123456789020):
... print '{0:.10f}'.format(x)
...
12345678900:.0000000000
123456789010.:000000000
123456789011.:000000000
123456789013.0000000000
123456789013.:000000000
123456789015.0000000000
123456789016.0000000000
123456789017.0000000000
123456789017.:000000000
123456789019.0000000000
Run Code Online (Sandbox Code Playgroud)
任何其他长度数字都不会发生这种情况.另外,我尝试了bash和perl的printf,而且这两种情况都没有发生.
这里发生了什么?
根据要求,这是一个截屏视频.
更多要求的信息:
>>> import locale
>>> locale.getdefaultlocale()
('en_US', …Run Code Online (Sandbox Code Playgroud) 我正在使用以下命令来测试我的perl代码:
perl -MB :: Lint :: StrictOO -MO = Lint,all,oo -M-circular :: require -M-indirect -Mwarnings :: method -Mwarnings :: unused -c $ file
在perl版本低于5.10的系统上,我也使用uninit.
我也使用Perl :: Critic和Perl :: Tidy,并根据自己的喜好设置了合适的rc文件.
这些模块在帮助我打破首次学习perl时学到的一些坏习惯方面做得非常出色.
当我陷入困境时,还有更多的模块或pragma会让我恢复直线和狭窄吗?
使用测试,并指出了Test ::*系列模块和一些好书.这些新信息让我重新考虑了有关测试和代码技能构建之间关系的一些假设.这些都受到赞赏,并且已经在研究和投入使用.
在我看来,这些是整体的两个独立部分.'perl -c',Perl :: Critic和Perl :: Tidy在编写代码和执行代码之前都有所帮助.Devel :: Cover,Devel :: NYTProf和测试在执行代码期间和之后发生.
良好的开发决定了迭代过程,因此测试将会运行,代码会反复开发,但我们仍然存在这种分离.
在我看来,答案的重点是代码的"执行期间和执行后".再次,非常感谢.我可以假设我的'写作和预执行'部分很好吗?至少,就像pragma,模块和实用程序一样.
我需要清理我的 .gitignore 文件。我运行一些命令,然后浏览 .gitignore 文件并删除不再需要的任何行。
该命令查找树中的所有文件,运行 git 的 check-ignore,仅 grep 出 .gitignore 文件中的匹配项,清理该行,然后对结果进行唯一排序。任何未出现在此输出中的规则都将被删除。
find . -type f -not -path .git -exec git check-ignore -v '{}' \; | grep '^.gitignore:' | sed 's/.*:\(.*\)\t.*$/\1/' | sort -u >> .gitignore
Run Code Online (Sandbox Code Playgroud)
此命令可能需要相当长的时间,尤其是在具有大量文件并安装在 NFS 上的存储库中。
是否有一种更简单的方法可以向我显示与树中任何文件都不匹配的规则?
我有一个要获取的实用程序脚本,其中包含两个提示用户输入的函数;anykey和yesno。
如何测试提示?提示文本不显示在 中$output。
另外,如何强制 while 循环yesno从测试中跳出 while 循环?
function anykey() { read -n 1 -r -s -p "${1:-Press any key to continue ...}"; }
function yesno() {
local -u yn
while true; do
# shellcheck disable=SC2162
read -N1 -p "${1:-Yes or no?} " yn
case $yn in
Y | N)
printf '%s' "$yn"
return
;;
Q)
warn 'Exiting...'
exit 1
;;
*)
warn 'Please enter a Y or a N'
;;
esac …Run Code Online (Sandbox Code Playgroud)