我看到了下面的代码适当性示例。
for (i in 0 until stack.size) # bad
while (!stack.isEmpty) # good
从这个角度来看,我所遇到的最好的代码是什么。
在Byte-of-python中,据说format函数可以简化代码,但我想知道鲁re使用是否更有害。
START_TIME = time.time()
time.sleep(1)
END_TIME = time.time()
print("spend time : {time}".format((END_TIME - START_TIME) = 'time')
# Why is this a grammatical error?
print("spend time : " + str(END_TIME - START_TIME ))
答案 0 :(得分:2)
您的print
语句末尾缺少方括号,这是正确的语法:
print("spend time : {time}".format(time = END_TIME - START_TIME))
请注意,您可以将其简化为:
print("spend time : {}".format(END_TIME - START_TIME))
或使用f-strings:
print(f"spend time : {END_TIME - START_TIME}")
出于可读性考虑,通常首选使用format()
或f字符串而不是字符串连接。它还允许您组合不同的数据类型,而不必先将它们转换为字符串。
答案 1 :(得分:1)
str.format方法提供了代码的可读性,尤其是当您需要在字符串中间插入内容时。假设您要构造一个字符串,该字符串显示为“今天的天气为{sun_status},最高气温为{high_temp},最低气温为{low_temp},降雨的可能性为{percip_chance}%”。使用字符串连接将其写出来非常难看。
s1 = "The weather is " + sun_status + " today with a high of " + str(high_temp) + ", a low of " + str(low_temp) + ", and a " + str(percip_chance) + "% chance of rain."
str.format方法可以解决此问题,并为您处理所有str类型转换(如果需要)
s1 = "The weather is {sun_status} today with a high of {high_temp}, a low of {low_temp}, and a {percip_chance}% chance of rain"\
.format(sun_status=sun_status,
high_temp=high_temp,
low_temp=low_temp,
percip_chance=percip_chance)
您的代码中也存在错误。调用str.format方法时,关键字可以是放在大括号{}中的任何关键字,并且不包含在字符串中。它也必须排在第一位。
print("spend time : {time}".format(time = (END_TIME - START_TIME)))