按顺序打印字符串

时间:2018-07-09 09:14:22

标签: python python-3.x

目标是从用户那里读取一个字符串,并将其按ASCII代码的顺序放置,而无需使用列表或sort()下面是我的代码

"press_args": {"by": "words"}

3 个答案:

答案 0 :(得分:6)

使用sorted函数:

>>> s = 'Hello, world!'

>>> sorted(s)
=> [' ', '!', ',', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']   

>>> ''.join(sorted(s))
=> ' !,Hdellloorw'

答案 1 :(得分:1)

  1. 您不需要使用ord来比较python字符串的ASCII码。
  2. 您的排序算法不正确...我无法识别它属于哪个算法。...看起来像是一种快速排序,但不能很好地使用递归。

代码中的这一行绝对不正确,

answer = new_answer
if answer == new_answer:

下面是一个不使用list和sort()的气泡排序示例,希望对您有所帮助...

answer = 'Hello, world!'

n=len(answer)
for i in range(n-1):
    for j in range(n-1,i,-1):
        if answer[j]<answer[j-1]:
            answer=answer[:j-1]+answer[j]+answer[j-1]+answer[j+1:]


print(answer)

答案 2 :(得分:0)

也许有人将其与chrord一起使用

word = 'Hello, World!'

ords = sorted(ord(x) for x in word)
new_word = ''.join(chr(x) for x in ords)
print(new_word)

输出

!,Hdellloorw