还有一个技巧——如果有人在HackerRank上学习Python,那么知道这一点对于开始学习是至关重要的。
我试图理解这段代码:
stamps = set()
for _ in range(int(input())):
print('underscore is', _)
stamps.add(raw_input().strip())
print(stamps)
输出:
>>>2
underscore is 0
>>>first
set(['first'])
underscore is 1
>>>second
set(['second', 'first'])
我把2作为第一个原始输入。函数如何知道我只循环两次?这让我大吃一惊,因为它不是典型的…对于我来说,在xrange(0,2)结构中。
起初我的想法是下划线重复shell中的最后一个命令。所以我在代码中添加了print语句来查看下划线的值……但是这些值只显示0和1,就像典型的循环结构一样。
我已经读完了这篇文章,我仍然不明白这三种下划线用法中的哪一种正在被使用。
What is the purpose of the single underscore "_" variable in Python?
我刚开始学习Python,所以非常感谢简单的解释!
ncoghlan's answer列出了Python中
_
的3种常规用法:您的问题是在代码的示例中使用了其中的哪一个。答案是这是一个一次性变量(情况3),但其内容打印在这里是为了调试目的。
但是,如果以任何方式使用
_
作为循环变量,则它不是一般的Python约定。因此,您可能会经常看到:其中
_
立即通知读取器该值不重要,循环只重复10次。但是在诸如
在使用循环变量值的地方,通常使用变量名,例如
i
,j
,而不是_
。下划线就像程序中的普通变量。
对于任何试图理解下划线和输入如何在循环中工作的人来说——在花了相当长的时间调试和打印之后——下面的代码让我了解了发生了什么。
用户输入:
输出:
注意for循环的第一行有int()转换吗?
第一个输入是2,所以int()可以很好地转换它。您可以知道第一行代码现在被忽略了,因为通过int()输入第二个输入'Dog',会产生一个错误。无法将单词转换为整数。
相关问题 更多 >
编程相关推荐