我主要是出于好奇而提出这个问题.我写了一些代码,这些代码正在做一些非常耗时的工作.所以,在执行我的workhorse函数之前,我把它包装成了对time.clock()的几次调用.它看起来像这样:
t1 = time.clock()
print this_function_takes_forever(how_long_parameter = 20)
t2 = time.clock()
print t2 - t1
Run Code Online (Sandbox Code Playgroud)
这很好.我的功能正确返回并t2 - t1给了我一个972.29或大约16分钟的结果.
但是,当我将代码更改为此时
t1 = time.clock()
print this_function_takes_forever(how_long_parameter = 80)
t2 = time.clock()
print t2 - t1
Run Code Online (Sandbox Code Playgroud)
我的功能仍然很好,但结果t2 - t1是:
None
-1741
Run Code Online (Sandbox Code Playgroud)
我很好奇实施细节导致了什么.None和负数都让我感到困惑.它与签名类型有关吗?这是None怎么解释的?
是while True一种可接受的循环代码块的方法,直到达到如下所接受的案例为止?有没有更优雅的方式来做到这一点?
while True:
value = input()
if value == condition:
break
else:
pass
# Continue code here.
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何意见.
在istitle()字符串方法中,Python 2.6.5手册内容如下:
如果字符串是一个带有标题的字符串并且至少有一个字符,则返回true,例如,大写字符可能只跟随无框字符,而小写字符只能跟随字符.否则返回false.
但在这种情况下,它返回false:
>>> book = 'what every programmer must know'
>>> book.title()
'What Every Programmer Must Know'
>>> book.istitle()
False
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
你能描述两种字符串连接方式之间的区别:简单的__add__运算符和%s模式吗?我在这个问题上进行了一些调查,发现%s(没有使用括号的形式)更快一点.
还出现了另一个问题:为什么结果'hell%s' % 'o'指的是另一个记忆区域'hell%s' % ('o',)?
有一些代码示例:
l = ['hello', 'hell' + 'o', 'hell%s' % 'o', 'hell%s' % ('o',)]
print [id(s) for s in l]
Run Code Online (Sandbox Code Playgroud)
结果:
[34375618400, 34375618400, 34375618400, 34375626256]
Run Code Online (Sandbox Code Playgroud)
PS我知道字符串实习:)
这是我的代码:
echo 'foo';
error_reporting(E_ALL);
echo 'this line doesnt end in a semi colon'
echo 'i should get an error here';
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我没有得到任何错误.
不知道这是怎么回事?
(在Python 3中)
我有字典old.我需要改变它的一些键; 需要更改的键和相应的新键存储在字典中change.有什么好办法吗?请注意,old.keys()和之间可能存在重叠change.values(),这需要我谨慎应用更改.
以下代码(我认为)可以工作,但我希望有更简洁但更好的Pythonic:
new = {}
for k, v in old.items():
if k in change:
k = change[k]
new[k] = v
old = new
Run Code Online (Sandbox Code Playgroud) 让我们说我必须变量,狗和猫.Dog = 5,cat = 3.我如何告诉Python随机选择其中一个变量并将其打印到屏幕上?
对于涉及化学元素的任务,是否可以使用户输入等于变量.
例如,碳具有分子量12,但我不想使用输入12,它们应该输入'C'.但是当输入将其转换为字符串时,不可能将其转换为变量C = 12.
有没有办法输入变量而不是字符串?
如果没有,我可以将字符串设置为变量.
例:
C = 12
element = input('element symbol:')
multiplier = input('how many?')
print(element*multiplier)
Run Code Online (Sandbox Code Playgroud)
这只会返回一个错误,指出您不能乘以字符串.
python ×8
python-3.x ×2
regex ×2
compilation ×1
dictionary ×1
input ×1
internals ×1
jquery ×1
php ×1
random ×1
string ×1
time ×1
timing ×1
while-loop ×1