python - 这个问题的python变量的范围
问题描述
我不知道为什么,但是在 countfrequency(s) 函数的最后一行中,我得到的范围值最终为 0,甚至 len(s) 为零。
import collections
def countfrequency(s):
final = 0
flag = 1
d = dict(collections.Counter(s))
for item in d:
if d[item] <= k:
flag = 0
if flag == 1: #Here
final = max(final, len(s))
print(final)
s = "ababbc"
k = 2
for x in range(len(s)):
for y in range(1, len(s)):
countfrequency(s[x:y + 1])
解决方案
这是因为两个原因:
- flag的值最后是0所以它不会改变final的值
- 长度函数将对象作为参数,当未更改时它给出 0
因此,您可以设置标志 1 以便控制进入 if 条件或在 if 条件之外打印 len(s) 的值
推荐阅读
- ruby-on-rails - Rails 6:如果我只使用控制器中的方法,则渲染部分
- regex - 匹配子字符串中的正则表达式的一部分
- java - 有没有办法在 Elastic seach 中连接同一对象之间的属性?
- python - 如何在 QTextBrowser 中使用 css 设置底部边框?
- wordpress - 将聊天机器人与我们的 wordPress 接口?
- node.js - Mongodb Nodejs 正则表达式搜索
- soapui - linux (wayland) 上的 SoapUI - 高 DPI/4K 缩放问题
- scala - 为什么将值类数组编译为对象数组?
- ios - 在文本选择中禁用查找 - TouchScreenKeyboard IOS Unity
- python - 一年后,无头 chrome 在具有相同 python selenium 代码的 centos 上不起作用