这两个单引号让我感到困惑
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
【讨论】:
以上是关于这两个单引号让我感到困惑的主要内容,如果未能解决你的问题,请参考以下文章