jhu*_*ub1 7 python loops input
还有一个提示 - 如果有人在HackerRank上学习Python,那么知道这对于开始是至关重要的.
我正在尝试理解这段代码:
stamps = set()
for _ in range(int(input())):
print('underscore is', _)
stamps.add(raw_input().strip())
print(stamps)
Run Code Online (Sandbox Code Playgroud)
输出:
>>>2
underscore is 0
>>>first
set(['first'])
underscore is 1
>>>second
set(['second', 'first'])
Run Code Online (Sandbox Code Playgroud)
我把2作为第一个原始输入.函数如何知道我只循环两次?这让我失望,因为它不是典型的......对于我在xrange(0,2)结构中.
起初我的想法是下划线重复shell中的最后一个命令.所以我在代码中添加了print语句来查看下划线的值......但是这些值只显示0和1,就像典型的循环结构一样.
我已经阅读了这篇文章,但仍然无法理解使用下划线的3个用法中的哪一个.
我刚刚开始学习Python,所以很容易理解这些简单的解释!
Ant*_*ala 14
ncoghlan的回答列出_了Python 中的3种常规用法:
- 在交互式解释器会话中保存最后执行的语句的结果.这个先例是由标准的CPython口译员设定的,其他口译员也纷纷效仿
对于i18n中的翻译查找(从相应的C约定中导入,我相信),如代码所示:
Run Code Online (Sandbox Code Playgroud)raise forms.ValidationError(_("Please enter a correct username"))`作为通用的"一次性"变量名称,表示功能结果的一部分被故意忽略,如代码所示:
Run Code Online (Sandbox Code Playgroud)label, has_label, _ = text.partition(':')
您的问题是代码中的示例中使用了哪一个.答案是一个一次性变量(案例3),但其内容在此处打印用于调试目的.
但是,_如果以任何方式使用其值,则不能将其用作循环变量.因此,您经常会看到:
for _ in range(10):
print("Hello world")
Run Code Online (Sandbox Code Playgroud)
其中_立即向读者发出信号,表明该值并不重要,并且循环仅重复10次.
但是在诸如的代码中
for i in range(10):
do_something(i)
Run Code Online (Sandbox Code Playgroud)
在使用循环变量的值的地方,使用变量名称是常规i,j而不是_.