15779327169 发表于 2024-4-3 23:32:40

求教

小甲鱼python 函数第20讲,动动手,第一题中,为什么我的答案进入了死循环?
"""%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[(_@%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{_@#_^{*
@##&{#&{&)*%(]{{([*}@[@&]+!!*{)!}{%+{))])[!^})+)$]#{*+^((@^@}$[**$&^{$!@#$%)!@(&
+^!{%_$&@^!}$_${)$_#)!({@!)(^}!*^&!$%_&&}&_#&@{)]{+)%*{&*%*&@%$+]!*__(#!*){%&@++
!_)^$&&%#+)}!@!)&^}**#!_$([$!$}#*^}$+&#[{*{}{((#$]{[$[$$()_#}!@}^@_&%^*!){*^^_$^
]@}#%[%!^[^_})+@&}{@*!(@$%$^)}(@_{{(*#%!%%+*)^+#%}$+_]#}%!**#!^_
)@)$%%^{_%!@(&{!}$_$[)*!^&{}*#{!)@})!*{^&[&$#@)*@#@_@^_#*!@_#})+[^&!@*}^){%%{&#@
@{%(&{+(#^{@{)%_$[+}]$]^{^#(*}%)@$@}(#{_&]#%#]{_*({(])$%[!}#@@&_)([*]}$}&${^}@(%
(%[@%!}%*$}(*@)}"""
list1 = []
for each in str1:
    if each notin list1:
      print(each,str1.count(each))

FishC 发表于 2024-4-3 23:32:56

你遇到死循环的原因是因为你没有将字符逐个添加到`list1`中。你需要在`for`循环内部添加`list1.append(each)`这一行代码。这样,每当遍历到一个新字符时,它会被添加到`list1`中,然后你才可以判断下一个字符是否已经在`list1`中存在。

以下是你的代码的修正版本:

str1 = """%%$@_$^__#)^)&!_+]!*@&^}@()%+$&!&_#)_*}{}}!}_]$[%}@{{([*}@+!!*{)!}{%+{))])#{*+^((@^@}${+)%*{&*%*&@%$+]!*__(#!*){%&@++
!_)^$&&%#+)}!@!)&^}**#!_$([$!$}#*^}$+&#{[$@}#%[%!^[^_})+@&}{@*!(@$%$^)}(@_{{(*#%!%%+*)^+#%}$+_]#}%!**#!^_
)@)$%%^{_%!@(&{!}$_$[)*!^&{}*#{!)@})!*{^&[&$#@)*@#@_@^_#*!@_#})+[^&!@*}^){%%{&#@
{%(&{+(#^{@{)%_$$]^{^#(*}%)@$@}(#{_&]#%#]{_*({(])$%[!}#@@&_)(}$}&${^}@(%
(%[@%!}%*$}(*@)}"""

list1 = []
for each in str1:
    if each not in list1:
      list1.append(each)
      print(each, str1.count(each))

希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 求教