Python 为什么这个for循环不检测用户输入的单词是否按字母顺序排序?

Python 为什么这个for循环不检测用户输入的单词是否按字母顺序排序?,python,for-loop,input,Python,For Loop,Input,我试图编写一个程序,这样它就可以接受一个单词作为输入,并确定它的字母是否按字母顺序排列 我的代码: words = str(input("Enter a word")) #Coal for i in words: if not sorted: print("Letters not in alphabetical order") else: print("Letters are in alphabetical order") 然而,即使是未分类的煤

我试图编写一个程序,这样它就可以接受一个单词作为输入,并确定它的字母是否按字母顺序排列

我的代码:

words = str(input("Enter a word")) #Coal
for i in words:
    if not sorted:
        print("Letters not in alphabetical order")
    else:
        print("Letters are in alphabetical order")
然而,即使是未分类的煤炭,我也收到了“字母按字母顺序排列”的输出。我的代码和语法有什么问题?

这行代码:

if not sorted:
实际上没有检查任何东西
sorted
是一个真实的内置函数,因此
not sorted
总是
False
。要使用排序的,必须给它一个参数

不需要迭代字符串。还应将字符串设置为小写:

word = input("Enter a word: ").lower()
if word != ''.join(sorted(word)):
    print("Letters not in alphabetical order")
else:
    print("Letters are in alphabetical order")
大概是这样的:

words = str(input("Enter a word")) #Coal
for word in words:
  if word !=''.join(sorted(word)):
    print("Letters not in alphabetical order")
else:
    print("Letters are in alphabetical order")

这不是
排序的方式。这是一个你需要调用的函数:
sorted(words)
。什么是
sorted
?它是一个从列表中返回iterable的方法。谢谢Timothy。我是python新手,您能告诉我这里如何使用join并解释其中的第2行吗context@JoeyTribhuvan它的意思是“如果原始单词不等于转换成字符串的已排序单词:”。