尝试使用下划线和输入了解Python循环

发布于 2021-01-29 17:21:05

另一个提示-如果有人在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'])
  1. 我把2作为第一个原始输入。函数如何知道我只循环两次?这让我失望,因为这不是典型的…对于xrange(0,2)结构中的我来说。

  2. 一开始我的想法是下划线重复了shell中的最后一个命令。因此,我在代码中添加了打印语句,以查看下划线的值…但这些值仅显示0和1,就像典型的循环结构一样。

我已经阅读了这篇文章,但仍然不明白使用了下划线的这三种用法中的哪一种。

Python中单个下划线“ _”变量的用途是什么?

我刚刚开始学习Python,因此非常感谢您进行简单的解释!

关注者
0
被浏览
43
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    ncoghlan的答案列出_了Python的3种常规用法:

    1. 将最后执行的语句的结果保存在交互式解释器会话中。此先例是由标准CPython解释器设置的,其他解释器也纷纷效仿
    2. 对于i18n中的翻译查询(我相信是从相应的C约定导入的),如以下代码所示:

      raise forms.ValidationError(_("Please enter a correct username"))`
      
    3. 作为通用的“ throwaway”变量名称,它表示函数结果的一部分被有意忽略,如代码所示:

       label, has_label, _ = text.partition(':')
      

    您的问题是您的代码示例中正在使用其中之一。答案将是一个可抛弃的变量(情况3),但 此处将 其内容打印出来用于调试。

    但是,_如果以任何方式使用它的值,则将其用作循环变量并不是通用的Python约定。因此,您经常会看到:

     for _ in range(10):
         print("Hello world")
    

    其中,_立即发出信号,读者的价值并不重要,它的循环只是重复10次。

    但是在诸如

     for i in range(10):
         do_something(i)
    

    使用循环变量的值的地方,习惯上使用变量名称,例如ij而不是_



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看