【问题标题】:These two single quotes are confusing me这两个单引号让我感到困惑
【发布时间】:2017-10-26 04:43:16
【问题描述】:
for char in 'python string':
    if char == '':  # 1: problem
        break
    print(char, end='')  #2: problem
    if char == 'o':
        continue
  • 1:当我在这两个引号之间给出一个空格时 它正在显示一个结果,当没有空格之间显示另一个 结果。为什么?
  • 2:当我在这 2 之间留一个空格时 引号单词是空格。为什么?

【问题讨论】:

  • 对于问题 1:在您给出单个空格的地方,它与您的字符串中的一个字符匹配,该字符在 python 字符串 之间有空格,但是当您没有给出时if 块中的空格(#1 问题)然后它不匹配任何字符并且 break 没有被执行,这就是循环执行没有任何中断的原因。
  • 对于问题 2:当我们使用 print() 的 end 参数时,它会将它作为结束字符打印出来,这就是为什么你给一个空间你正在观察空间的原因。跨度>

标签: python break continue


【解决方案1】:

1:

''' ' 是不同的。第一个是空字符串,第二个是长度为 1 的字符串,其中有一个空格。 for 循环中的比较也永远不会返回 true。遍历字符串会返回其中的每个字符,这些字符的长度定义为 1。因此char == '' 比较始终为False。但如果你在其中放一个空格,当char 是短语'python string' 中的空格时,它将返回True

2:

print 函数的 end 关键字定义了在打印完所有位置参数后要打印的内容。默认为'\n',用于打印换行符。所以使用print('python', 'string', end=' ') 将打印字符串python string (注意末尾的多余空格)。

【讨论】:

    【解决方案2】:

    End 参数定义需要在打印内容末尾附加的内容。它默认为换行符 ('\n) 或给定的任何字符。

    for char in 'python string':
        print(char)
    
    p
    y
    t
    h
    o
    n
    
    s
    t
    r
    i
    n
    g
    

    当没有给定空格或空字符串时,它会打印出字符串是什么:

    for char in 'python string':
        print(char, end ='')
    
    python string
    

    只有一个空格,它被附加到每个字符:

    for char in 'python string':
        print(char, end =' ')
    
    p y t h o n   s t r i n g 
    

    用双空格,则:

    for char in 'python string':
        print(char, end ='  ')
    
    p  y  t  h  o  n     s  t  r  i  n  g 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多