小编Car*_*ans的帖子

递归中的全局变量.蟒蛇

好的,我正在使用Python 2.7.3,这是我的代码:

def lenRecur(s): 

    count = 0

    def isChar(c):
        c = c.lower()
        ans=''
        for s in c:
            if s in 'abcdefghijklmnopqrstuvwxyz':
                ans += s
        return ans

    def leng(s):
        global count
        if len(s)==0:
            return count
        else:
            count += 1
            return leng(s[1:])

    return leng(isChar(s))
Run Code Online (Sandbox Code Playgroud)

我正在尝试修改函数count内部的变量leng.以下是我尝试过的事情:

  1. 如果我把变量count放在lenRecur函数之外它第一次工作正常,但是如果我再试一次而不重新启动python shell,那么计数(显然)不会重启,所以它会不断添加.
  2. 如果我改变它也count += 1count = 1,但输出(显然)是一个.

所以,我的目标是使用递归获取字符串的长度,但我不知道如何跟踪字母数.我搜索了有关全局变量的信息,但我仍然陷入困境.我不知道我还没有理解它,或者我的代码中有问题.

提前致谢!

python variables recursion global

7
推荐指数
2
解决办法
2万
查看次数

类型错误:需要一个类似字节的对象,而不是 python 中 geolite2 函数中的“str”

我有一个程序显示属于 Ip 地址的国家/地区。它在 python 2.7 版本中工作正常。问题是当我在 python 3.5 版本中尝试相同的程序时,它会抛出如下错误:

代码:

from geoip import geolite2

m = geolite2.lookup('17.0.0.1')
Run Code Online (Sandbox Code Playgroud)

错误:

TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

我该如何解决该错误?

提前致谢

python

7
推荐指数
2
解决办法
4909
查看次数

“solana 部署”和“solana 程序部署”之间的区别

我目前正在学习 Solana 的 Rust 开发。我遵循了 hello-world 教程,想知道运行solana deploysolana program deploy.

我使用 Solana Devnet 集群对两者进行了测试。

运行结果solana deploy

运行结果solana program deploy

我的直觉告诉我,一个solana deploy是创建一个简单的 Solana 帐户,另一个是创建一个程序帐户。如果无法调用交易,那么使用程序创建简单的 Solana 账户还有什么意义呢?

solana

7
推荐指数
1
解决办法
1478
查看次数

文件中的错误(con,"rb"):在使用plotly在演示文稿中生成绘图时无法打开连接

我正在使用R 3.3.3,我正在研究一个R演示文稿,试图用绘图绘制ggplot图.我的R markdown文件中的块代码是:

```{r plot, echo=FALSE, message=TRUE, warning=TRUE}

G <- ggplot(data=gender_gap, aes(x=value_girls, y=value_boys, color=gender_gap))+ geom_point()+ geom_text(label=gender_gap$LOCATION, hjust=1, vjust=1, size=4)+ geom_abline(intercept = 0, slope = 1)

ggplotly(G)
```
Run Code Online (Sandbox Code Playgroud)

该图很好地打印在查看器中,但在幻灯片中我收到以下消息:

"文件中的错误(con,"rb"):无法打开连接"

提前感谢您的明智建议!

r

6
推荐指数
1
解决办法
6170
查看次数

Python解释器字符串池优化

在看到这个问题它的重复的问题仍然存在对我来说.

如果我跑,我会得到什么is,==做什么以及为什么

a = "ab"
b = "ab"

a == b
Run Code Online (Sandbox Code Playgroud)

我得到True.这里的问题是为什么会发生这种情况:

a = "ab"
b = "ab"
a is b # Returns True
Run Code Online (Sandbox Code Playgroud)

所以我做了我的研究,我找到了这个.答案说Python解释器使用字符串池.因此,如果它看到两个字符串相同,则将它们分配id给新字符串以进行优化.

直到这里一切都好,并回答.我真正的问题是为什么这个池只发生在一些字符串上.这是一个例子:

a = "ab"
b = "ab"
a is b # Returns True, as expected knowing Interpreter uses string pooling

a = "a_b"
b = "a_b"
a is b # Returns True, again, as expected knowing Interpreter uses string …
Run Code Online (Sandbox Code Playgroud)

python string string-pool

6
推荐指数
1
解决办法
267
查看次数

如何使用 pandas.Series.str.contains 搜索字符加上

如何在 pandas 数据框列中使用“pandas.Series.str.contains”搜索字符“+”。我试过

df_noplus = df[df['column1'].str.contains('+',case=False)]
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误

  File "/home/anil/anaconda3/lib/python3.5/sre_parse.py", line 638, in _parse
    source.tell() - here + len(this))
Run Code Online (Sandbox Code Playgroud)

错误:没有可重复的内容

python pandas

3
推荐指数
1
解决办法
2412
查看次数

UnboundLocalError:赋值前引用的局部变量'player'

当我发现这个错误时,我试图做一些代码.我首先playernamea param1和a 定义类param2.当我运行该game函数并尝试在其中创建player 类的实例时,我得到UnboundLocalError错误.这是我的代码:

class player(object):

    def __init__ (self, name, param1 = None, param2 = None):

        self.param1 = param1
        self.param2 = param2
        self.name = name

def game(n = int(raw_input('How many players? '))):

    playerList = [] 

    for x in range(n):
        playerList.append(player(raw_input('Player %i: ' %(x+1))))

    for player in playerList:
        player.param1 = int(raw_input('%s, how many do you predict? ' %(player.name.upper())))
Run Code Online (Sandbox Code Playgroud)

所以基本上,我的问题是python不允许我在函数内创建类的实例.我搜索了很多,但我还没找到我要搜索的内容.提前致谢!

python variables instance

2
推荐指数
1
解决办法
3027
查看次数

Python编程无意无限循环

counter=0
initials=0
name1=raw_input("Please enter your first name!")
name2=raw_input("Please enter your middle name!")
name3=raw_input("Please enter your last name!")
option=str(raw_input("a)Print the length of my name\nb)Print\nc)Exit\nChoose one of the options."))
while option != "c" or option != "C":
    if (option=="a" or option=="A"):
        print "Your first name has " + str(len(name1)) + " letters."
        print "Your second name has " + str(len(name2)) + " letters."
        print "Your last name has " + str(len(name3)) + " letters."
    elif (option=="b" or option=="B"):
        print name1[0] + "." …
Run Code Online (Sandbox Code Playgroud)

python

-1
推荐指数
1
解决办法
122
查看次数

不存在的行上的Python缩进错误

代码如下:

import glob
import os
import shutil

for file_path in glob.glob(os.path.join(folder, '*Tomo*_[1-100]_*')):
    new_dir = file_path.rsplit('.', 1)[0]
    try:
      os.mkdir(os.path.join(folder, new_dir))
#shutil.move(file_path,os.path.join(new_dir,os.path.basename(file_path)))
Run Code Online (Sandbox Code Playgroud)

shutil命令当前已被注释掉,因为这导致语法错误,我不知道为什么.但是当试图运行它时,我在第10行得到一个缩进错误(代码是9行长).我不知道我哪里出错了.

python

-1
推荐指数
1
解决办法
256
查看次数

如何获得仅在两列中具有相同条目的特定观察

v1=rep(c("a","b","c","d"),each=5)
v2=rep(c(10,12,9,7),each=5)
v3=c("y","y","w","y","y",rep(c("f"),times=5),rep(c("y"),times=4),"w",rep(c("k"),times=5))
v4=c("j","j","w","j","j",rep(c("q"),times=5),rep(c("l"),times=4),"w",rep(c("n"),times=5))
df=data.frame(v1,v2,v3,v4)

   v1 v2 v3 v4
1   a 10  y  j
2   a 10  y  j
3   a 10  w  w
4   a 10  y  j
5   a 10  y  j
6   b 12  f  q
7   b 12  f  q
8   b 12  f  q
9   b 12  f  q
10  b 12  f  q
11  c  9  y  l
12  c  9  y  l
13  c  9  y  l
14  c  9  y  l
15 …
Run Code Online (Sandbox Code Playgroud)

r

-3
推荐指数
1
解决办法
50
查看次数

标签 统计

python ×7

r ×2

variables ×2

global ×1

instance ×1

pandas ×1

recursion ×1

solana ×1

string ×1

string-pool ×1