加扰函数不会输出

2024-04-24 04:36:44 发布

您现在位置:Python中文网/ 问答频道 /正文

在python的IDLE中测试时,此函数不会给出输出:

import random

def scramble(string):

rlist = []

 while len(rlist) < len(string):

        n = random.randint(0, len(string) - 1)
        if rlist.count(string[n]) < string.count(string[n]):
            rlist += string[n]
    rstring = str(rlist)        
    return rstring 

scramble('sdfa')

我花了很长时间试图解决这个问题,但代码对我来说似乎很好。在


Tags: 函数importstringlenifdefcountrandom
2条回答

注意:

不要使用string作为参数名,它可能与standard module ^{}冲突。在

您可能不想返回列表的str(),这会导致类似

>>> rlist = ['s', 'a', 'f', 'd']
>>> str(rlist)
>>> "['s', 'a', 'f', 'd']"

相反,若要获得加扰字符串结果,请使用^{}

^{pr2}$

scramble的最后两行可以合并成一个return

return str(rlist)

或者

return ''.join(rlist)

正确格式化这似乎解决了问题。在

import random

def scramble(string):
   rlist = []
   while len(rlist) < len(string):
      n = random.randint(0, len(string) - 1)
      if rlist.count(string[n]) < string.count(string[n]):
         rlist += string[n]
   rstring = str(rlist)        
   return rstring
print(scramble('sdfa'))

在Python中,缩进和良好的语法一样重要:) 顺便说一下,正如@Vincent Savard所说,您没有打印结果。在scramble()中,返回了一个字符串,但没有对该字符串执行任何操作。在

相关问题 更多 >