我试图替换一些文字休息。 我的代码是:
str = "2014년 8월 19일 오후 11:08, 회원님 : 안녕"
def convert(a):
str.replace("년 ", a)
str.replace("월 ", a)
str.replace("일 ", a)
b = convert(",")
print(b)
和这样的错误:(pycharm IDE)
C:\Python34\python.exe C:/Users/minseok/PycharmProjects/untitled1/test.py
None
Process finished with exit code 0
我无法识别我的问题。 我该怎么办这个错误? 感谢。
答案 0 :(得分:3)
两个问题:第一,你的替换没有生效,第二,你没有返回任何东西。你需要这样做:
def convert(a):
myStr = "2014년 8월 19일 오후 11:08, 회원님 : 안녕"
myStr = myStr.replace("년 ", a)
myStr = myStr.replace("월 ", a)
myStr = myStr.replace("일 ", a)
return myStr
b = convert(",")
print(b)
replace
不修改字符串,它返回一个新字符串,因此如果要保存结果,则需要将其分配给变量。此外,您的函数将返回None
,除非您告诉它返回其他内容,这就是您看到无的原因。
另外,我在函数中移动了你的字符串。如果要在外部定义它,则需要将其作为参数传递,或使用global myStr
使其成为全局变量(但第一个选项更好)。
我还将变量名称从str
更改为myStr
。 str
是Python中内置类型的名称,因此最好不要将该名称用于自己的变量。
答案 1 :(得分:1)
replace
会返回一个新字符串,因此当您更换字符时,会错过结果。您应该捕获树结果,然后将其返回
>>> str = u"2014년 8월 19일 오후 11:08, 회원님 : 안녕"
>>> def convert(a):
... return str.replace(u"년 ", a).replace(u"월 ", a).replace(u"일 ", a)
...
...
>>> b = convert(", ")
>>> print(b)
2014, 8, 19, 오후 11:08, 회원님 : 안녕
答案 2 :(得分:0)
你犯了两个错误。首先,您正在隐藏内置名称str
,其次,您没有从convert(a)
返回任何内容,这就是为什么在字符串上打印None
的原因。
请查看以下代码段以获取帮助,
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
sample_string = "2014년 8월 19일 오후 11:08, 회원님 : 안녕"
def convert(a):
string_to_return = ''
string_to_return = sample_string.replace("년 ", a)
string_to_return = string_to_return.replace("월 ", a)
string_to_return = string_to_return.replace("일 ", a)
return string_to_return
if __name__ == '__main__':
b = convert(",")
print(b)