try:
        word = input()

        word = list(word)
        new_word_list = []
        for w in word:
            if 64<ord(w)<91 or 96<ord(w)<123:
                if ord(w)<91:
                    new_word_list.append([w.upper(), "upper"])
                else:
                    new_word_list.append([w.upper(), "lower"])
        
        new_word_list = sorted(new_word_list, key=lambda x: x[0])
        str_new = ""
        need_ = 0
        for index, w in enumerate(word):
            if 64<ord(w)<91 or 96<ord(w)<123:
                if new_word_list[index-need_][1] == "lower":
                    s = new_word_list[index-need_][0].lower()
                else:
                    s = new_word_list[index-need_][0]
                str_new += s
            else:
                str_new += word[index]
                need_ += 1
        print(str_new)
    except:
        break

没有用 isalpha() 这个函数,用的是ord() 转字符为数值