尝试使用下划线和输入了解Python循环
另一个提示-如果有人在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中的最后一个命令。因此,我在代码中添加了打印语句,以查看下划线的值…但这些值仅显示0和1,就像典型的循环结构一样。
我已经阅读了这篇文章,但仍然不明白使用了下划线的这三种用法中的哪一种。
Python中单个下划线“ _”变量的用途是什么?
我刚刚开始学习Python,因此非常感谢您进行简单的解释!
-
ncoghlan的答案列出
_
了Python的3种常规用法:- 将最后执行的语句的结果保存在交互式解释器会话中。此先例是由标准CPython解释器设置的,其他解释器也纷纷效仿
-
对于i18n中的翻译查询(我相信是从相应的C约定导入的),如以下代码所示:
raise forms.ValidationError(_("Please enter a correct username"))`
-
作为通用的“ throwaway”变量名称,它表示函数结果的一部分被有意忽略,如代码所示:
label, has_label, _ = text.partition(':')
您的问题是您的代码示例中正在使用其中之一。答案将是一个可抛弃的变量(情况3),但 此处将 其内容打印出来用于调试。
但是,
_
如果以任何方式使用它的值,则将其用作循环变量并不是通用的Python约定。因此,您经常会看到:for _ in range(10): print("Hello world")
其中,
_
立即发出信号,读者的价值并不重要,它的循环只是重复10次。但是在诸如
for i in range(10): do_something(i)
使用循环变量的值的地方,习惯上使用变量名称,例如
i
,j
而不是_
。