【问题标题】:Why isn't this a string?为什么这不是一个字符串?
【发布时间】:2015-12-10 06:43:05
【问题描述】:

谁能解释为什么要打印failedword 是一个字符串,但它一直跳到 else

word = input("Enter a word.. ")
word_length = len(word)
first_letter = word[0]
last_letter = word[word_length-1]

if word == str:
    print(last_letter + word[1 : word_length-1] + first_letter)
else:
    print("failed")

【问题讨论】:

  • 你试过print(word)print(str)吗?我想你会对结果感到惊讶。
  • @thefourtheye:如PEP 8,推荐word[word_length-1]
  • 顺便说一句,获取字符串中最右侧字母的更简单方法是使用负偏移量从右侧开始索引,例如last_letter = word[-1]。负偏移量适用于所有 Python 序列,包括字符串、列表和元组。

标签: python string python-3.x if-statement


【解决方案1】:

当你说

if word == str:

您正在检查word 是否与str() 函数相同。


如果要检查输入是否为字符串,则可以使用 isinstance()函数,像这样

if isinstance(word, str):

但是input() 函数,在 Python 3.x 中,总是只返回一个字符串。因此,您不必检查输入是否为字符串。


注意:如果您使用的是 Python 2.x,print 实际上是一个语句,而不是一个函数。您可以在this question 阅读更多相关信息。

【讨论】:

  • if word == str: 检查字符串对象。如果他使用的是if word == str():,那么这与检查 word 是否为空字符串相同。因为str() 自己返回一个空字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多