如何解决Jupyter Notebook 通过两个函数传递/编辑变量
我试图通过两个函数传递一个变量并全局修改它。我不允许在函数内使用“全局变量”我得到错误:SyntaxError: name 'variable' is parameter and global。不确定这是否是 Jupyter 全局/局部范围问题,为了解决它,我使用 variable1 和 variable2 将所做的更改分配给新对象,但我不想诉诸于此。
import logging
import re
import nltk
from nltk.stem import WordNetLemmatizer
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s',level=logging.INFO)
variable = 'programmingses!'
def cleanText(variable):
variable = variable.lower()
Yamtern = re.compile('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
variable = Yamtern.sub('',variable)
emoji = re.compile("["
u"\U0001F600-\U0001FFFF" # emoticons
u"\U0001F300-\U0001F5FF" # symbols & pictographs
u"\U0001F680-\U0001F6FF" # transport & map symbols
u"\U0001F1E0-\U0001F1FF" # flags (iOS)
u"\U00002702-\U000027B0"
u"\U000024C2-\U0001F251"
"]+",flags=re.UNICODE)
variable = emoji.sub(r'',variable)
variable = re.sub(r"[,.\"!@#$%^&*(){}?/;`~:<>+=-]","",variable)
print("New variable is = " + variable)
return(variable)
cleanText(variable)
这会打印: 新变量是 = 编程
'程序设计'
def lemonFunction(x):
lemmatizer = WordNetLemmatizer()
variable = lemmatizer.lemmatize(x)
print(variable)
return(variable)
lemonFunction(variable)
这会打印: 编程!
'程序设计!'
def preformTwofunctions(variable):
cleanText(variable)
lemonFunction(variable)
print(variable)
return(variable)
preformTwofunctions(variable)
此打印:
新变量是 = 编程
编程!
编程!
'程序设计!'
所以对于lemonFunction,变量没有被全局修改,我无法一个接一个地执行清理函数来依次清理文本。柠檬函数从原始变量输入开始。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。