- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我见过用 Python 编写相同内容的两种方法:
while 1:
# do something here
和
while True:
# do something here
哪一个更Pythonic?
我已经知道 True
is already a keyword , the differences等等,但我问的是哪个更Pythonic
最佳答案
没有实际差异。 1
和 True
在 python 中是相等的,这在将来也得到保证,所以可以使用你最喜欢的外观。
至于哪个是Pythonic,我认为完全避免此类循环是Pythonic,除非在极少数情况下,您实际上打算有一个无限循环。
您几乎总是可以使用显式终止条件而不是break语句来编写它们,并且显式优于隐式。
<小时/>两者在标准库中的使用频率大致相同。 while True
出现 96 次:
/usr/lib/python2.7$ grep -rn "while True:"
_abcoll.py:292: while True:
_abcoll.py:478: while True:
_abcoll.py:531: while True:
argparse.py:1807: while True:
base64.py:287: while True:
base64.py:302: while True:
calendar.py:162: while True:
chunk.py:28:while True:
chunk.py:34: while True:
codecs.py:458: while True:
codecs.py:529: while True:
ConfigParser.py:478: while True:
decimal.py:2141: while True:
decimal.py:2331: while True:
decimal.py:2681: while True:
decimal.py:2990: while True:
decimal.py:3124: while True:
decimal.py:3205: while True:
decimal.py:5695: while True:
difflib.py:1466: while True:
difflib.py:1556: while True:
difflib.py:1573: while True:
difflib.py:1580: while True:
filecmp.py:67: while True:
fractions.py:245: while True:
gzip.py:202: while True:
gzip.py:208: while True:
gzip.py:248: while True:
gzip.py:502: while True:
httplib.py:273: while True:
httplib.py:406: while True:
httplib.py:411: while True:
httplib.py:572: while True:
httplib.py:610: while True:
httplib.py:747: while True:
locale.py:134: while True:
mailbox.py:217: while True:
mailbox.py:534: while True:
mailbox.py:652: while True:
mailbox.py:814: while True:
mailbox.py:850: while True:
mailbox.py:856: while True:
mailbox.py:1221: while True:
mailbox.py:1227: while True:
mailbox.py:1246: while True:
mailbox.py:1251: while True:
mailbox.py:1279: while True:
mailbox.py:1342: while True:
mailbox.py:1352: while True:
mailbox.py:1359: while True:
mailbox.py:1364: while True:
mailbox.py:1385: while True:
mailbox.py:1395: while True:
mimetypes.py:243: while True:
pdb.py:1312: while True:
pickletools.py:1841: while True:
posixpath.py:299: while True:
pty.py:146: while True:
pyclbr.py:196: while True:
pyclbr.py:284: while True:
pyclbr.py:308: while True:
py_compile.py:146: while True:
pydoc.py:537: while True:
pydoc.py:1762: while True:
_pyio.py:559: while True:
_pyio.py:953: while True:
_pyio.py:1013: while True:
_pyio.py:1896: while True:
sets.py:356: while True:
shlex.py:123: while True:
socket.py:349: while True:
socket.py:372: while True:
socket.py:427: while True:
socket.py:445: while True:
socket.py:474: while True:
socket.py:514: while True:
SocketServer.py:153: while True:
ssl.py:196: while True:
subprocess.py:476: while True:
sysconfig.py:406: while True:
tarfile.py:529: while True:
tarfile.py:534: while True:
tarfile.py:566: while True:
tarfile.py:836: while True:
tarfile.py:859: while True:
tarfile.py:902: while True:
tarfile.py:1168: while True:
tarfile.py:1384: while True:
tarfile.py:1579: while True:
tarfile.py:2317: while True:
tarfile.py:2379: while True:
tarfile.py:2508: while True:
threading.py:255: while True:
uu.py:105: while True:
_weakrefset.py:97: while True:
zipfile.py:579: while True:
while 1
出现了 116 次。请注意,较旧的代码更有可能具有这种形式,因为 bool
在早期的 Python 中并不总是存在。
/usr/lib/python2.7$ grep -rn "while 1:" *.py
aifc.py:309: while 1:
aifc.py:962: while 1:
audiodev.py:252: while 1:
binhex.py:257: while 1:
binhex.py:265: while 1:
binhex.py:295: while 1:
binhex.py:377: while 1:
binhex.py:481: while 1:
binhex.py:492: while 1:
cgi.py:251: while 1:
cgi.py:683: while 1:
cgi.py:696: while 1:
cgi.py:729: while 1:
code.py:227: while 1:
compileall.py:141: while 1:
DocXMLRPCServer.py:41: while 1:
fpformat.py:141: while 1:
ftplib.py:199: while 1:
ftplib.py:407: while 1:
ftplib.py:431: while 1:
ftplib.py:462: while 1:
ftplib.py:484: while 1:
ftplib.py:691: while 1:
ftplib.py:709: while 1:
ftplib.py:731: while 1:
ftplib.py:747: while 1:
ftplib.py:904: while 1:
getpass.py:97: while 1:
heapq.py:346: while 1:
heapq.py:348: while 1:
imaplib.py:864: while 1:
imaplib.py:987: while 1:
_LWPCookieJar.py:111: while 1:
mailbox.py:2021: while 1:
mailbox.py:2039: while 1:
mailbox.py:2050: while 1:
mailbox.py:2109: while 1:
mailbox.py:2117: while 1:
mailbox.py:2164: while 1:
mailbox.py:2172: while 1:
mailcap.py:63: while 1:
markupbase.py:269: while 1:
markupbase.py:323: while 1:
markupbase.py:345: while 1:
markupbase.py:358: while 1:
mhlib.py:305: while 1:
mhlib.py:616: while 1:
mhlib.py:915: while 1:
mhlib.py:920: while 1:
mimetools.py:240: while 1:
mimetools.py:247: while 1:
mimetypes.py:213: while 1:
mimify.py:86: while 1:
mimify.py:98: while 1:
mimify.py:111: while 1:
mimify.py:135: while 1:
mimify.py:164: while 1:
mimify.py:241: while 1:
mimify.py:266: while 1:
mimify.py:292: while 1:
mimify.py:315: while 1:
mimify.py:390: while 1:
mimify.py:407: while 1:
_MozillaCookieJar.py:58: while 1:
multifile.py:15:while 1:
multifile.py:114: while 1:
netrc.py:38: while 1:
netrc.py:58: while 1:
netrc.py:73: while 1:
nntplib.py:239: while 1:
nntplib.py:559: while 1:
nntplib.py:583: while 1:
os.py:545: while 1:
pdb.py:40: while 1:
pickle.py:856: while 1:
platform.py:166: while 1:
platform.py:966: while 1:
quopri.py:70: while 1:
quopri.py:128: while 1:
random.py:394: while 1:
random.py:464: while 1:
random.py:517: while 1:
random.py:540: while 1:
re.py:310: while 1:
rfc822.py:148: while 1:
shlex.py:287: while 1:
shutil.py:48: while 1:
site.py:424: while 1:
smtplib.py:352: while 1:
smtplib.py:847: while 1:
sre_parse.py:307: while 1:
sre_parse.py:325: while 1:
sre_parse.py:393: while 1:
sre_parse.py:406: while 1:
sre_parse.py:425: while 1:
sre_parse.py:536: while 1:
sre_parse.py:549: while 1:
sre_parse.py:573: while 1:
sre_parse.py:600: while 1:
sre_parse.py:640: while 1:
sre_parse.py:708: while 1:
sre_parse.py:718: while 1:
telnetlib.py:587: while 1:
telnetlib.py:608: while 1:
telnetlib.py:616: while 1:
telnetlib.py:732: while 1:
tokenize.py:286: while 1: # loop over lines in stream
urllib.py:266: while 1:
urlparse.py:282: while 1:
wave.py:135: while 1:
weakref.py:153: while 1:
weakref.py:359: while 1:
xdrlib.py:214: while 1:
xmllib.py:187: while 1:
xmlrpclib.py:1461: while 1:
zipfile.py:1095: while 1:
关于python - While 1 与 While True。哪一个更Pythonic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15402884/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!