这两个单引号让我感到困惑

Posted

技术标签:

【中文标题】这两个单引号让我感到困惑【英文标题】: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 参数时,它会将它作为结束字符打印出来,这就是为什么你给一个空间你正在观察空间的原因。跨度> 【参考方案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 

【讨论】:

以上是关于这两个单引号让我感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

将单引号转换为字符串中的转义单引号

PHP单引号和双引号区别

EXCEL中双引号和单引号中的数字有啥区别

SQL双引号和单引号同时存在的时候该如何转义呢? 比如这一句

请教Linux shell命令中双引号与单引号嵌套的问题

如何在 MySQL 中转义单引号