我正在尝试执行以下操作:
用“ HA!”替换所有输入的字符串。它们的数量取决于字符串中有多少个字母(三个字母表示三个“ HA!”等)
代码:
stringI = input("Enter anything in here! It will become laughter after
you do this! \n")
if stringI.isalpha:
print(stringI.replace(stringI, "HA!", len(stringI)))
无论字符串中的字符数如何,它仅输出一个“ HA!”。
答案 0 :(得分:0)
我可以想到两种方法:
遍历字符串以构建新字符串,用def make_ha(s):
return "".join(["HA!" if c.isalpha() else c for c in s])
代替字母
from string import ascii_letters
trans = str.maketrans(dict.fromkeys(ascii_letters, "HA!"))
def make_ha2(s):
return s.translate(trans)
制作翻译表,并使用该表翻译字符串
print(make_ha("aaBB123")) # HA!HA!HA!HA!123
print(make_ha2("aaBB123")) # HA!HA!HA!HA!123
第一个比较容易理解,但是如果以后开始添加其他规则,第二个将变得不太复杂。后者也仅适用于ascii字母,而前者将根据字母字符的Unicode定义进行操作。
x1
答案 1 :(得分:0)
我同意上面的评论,因为您实际上只是在创建一个新字符串,所以实际上并不需要使用replace方法。这是一种很容易实现的简单方法:
>>> count = 0
>>> stringI = input("Enter anything in here! It will become laughter after you do this\n")
Enter anything in here! It will become laughter after you do this
test test
>>> count = 0
>>> for char in stringI:
... if char.isalpha():
... count += 1
...
>>> str_builder = ''
>>> for ha in range(count):
... str_builder += "HA! "
...
>>> str_builder
'HA! HA! HA! HA! HA! HA! HA! HA! '
>>>