当前位置: 首页 > 面试题库 >

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

牟黎昕
2023-03-14
问题内容

另一个提示-如果有人在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,因此非常感谢您进行简单的解释!


问题答案:

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而不是_



 类似资料:
  • >>> class MyClass(): ... def __init__(self): ... self.__superprivate = "Hello" ... self._semiprivate = ", world!" ... >>> mc = MyClass() >>> print mc.__superprivate Traceback (most recen

  • 大家好。这是我学习编程的第五周。我应该创建一个程序,让用户三次尝试输入一个有效的值。如果第三次尝试的值无效(负数),那么它将提示错误消息并终止。 问题是我可以输入两个无效值,后跟一个有效值,但它仍然会给出错误消息并终止。程序应计算第三个有效值并进行数学运算,然后打印转换。 例如: 你想把多少英里换成公里?-1 不能输入负值! 输入正确的英里数:-1 不能输入负值! 输入正确的英里数:5 错误:不能

  • 问题内容: 我对此并不陌生,只是想了解这一说法。我知道应该替换/块。 现在假设我做这样的事情: 如何用上下文管理器代替它? 问题答案: 并不能真正代替/ ,而是/ 。不过,在异常情况下,您 可以 使上下文管理器执行与非异常情况不同的操作: 这是上下文管理器决定抑制异常的位置(就像您通过不在子句中重新引发异常一样)。

  • 本文向大家介绍python中单下划线和双下划线分别是什么?相关面试题,主要包含被问及python中单下划线和双下划线分别是什么?时的应答技巧和注意事项,需要的朋友参考一下 name:一种约定,python内部的名字,是用来与用户自动以的名字区分开,防止冲突

  • 本文向大家介绍Python3中_(下划线)和__(双下划线)的用途和区别,包括了Python3中_(下划线)和__(双下划线)的用途和区别的使用技巧和注意事项,需要的朋友参考一下 在看一些Python开源代码时,经常会看到以下划线或者双下划线开头的方法或者属性,到底它们有什么作用,又有什么样的区别呢?今天我们来总结一下(注:下文中的代码在Python3下测试通过) _ 的含义 在python的类中

  • 问题内容: 看起来XStream(com.thoughtworks.xstream-> xstream 1.4.2)正在以一种非常奇怪的方式处理元素和属性名称中的下划线。我需要从属性中带有下划线的客户那里获取并解析xml。这是我第一次尝试使用XStream,但由于希望避免所有丑陋的xml解析,我有些失望。 在这里,我提供了一个小的测试样本来阐明这一行为。最后一个例子显示了我的问题。 这个输出 现在

  • 本文向大家介绍在Python下尝试多线程编程,包括了在Python下尝试多线程编程的使用技巧和注意事项,需要的朋友参考一下 多任务可以由多进程完成,也可以由一个进程内的多线程完成。 我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程。 由于线程是操作系统直接支持的执行单元,因此,高级语言通常都内置多线程的支持,Python也不例外,并且,Python的线程是真正的Posix Thread

  • Python新手。我正在尝试在使用 while 循环从用户获取输入后打印数字。 我的代码从user获取int,然后运行循环。在打印第一个数字后,代码要求继续,之后循环将继续。 我的代码如下: 代码正在做和额外的循环,然后在得到答案后终止循环。最重要的是,在最后一个循环中,如果答案是“n”,它就会继续运行。