我刚刚开始使用
python.有人可以解释以下代码片段的第2行吗?我不明白`num`位.我尝试用一个勾号替换反引号字符,但随后它就破了.只要详细解释这条线就会很棒.
loop_count = 1000000 irn = ''.join([`num` for num in range(loop_count)]) number = int(irn[1]) * int(irn[10]) * int(irn[100]) * int(irn[1000]) * int(irn[10000]) * int(irn[100000]) * int(irn[1000000]) print number
解决方法
反引号是repr()内置函数的弃用别名,因此第二行等效于以下内容:
irn = ''.join([repr(num) for num in range(loop_count)])
这使用列表推导来创建表示数字的字符串列表,然后使用”.join()将该字符串列表组合成单个字符串,因此这等同于以下内容:
irn = '' for num in range(loop_count): irn += repr(num)
注意我在这里使用repr()与反引号一致,但是你通常会看到str(num)来获取int的字符串表示(它们碰巧是等价的).