2024-09-30 14:30:39 发布
网友
phrase='!_#@%' pun='' string='dj_khaled' for item in string: if item not in phrase: pun=pun+item print(pun)
我的问题是,我得到的输出是djkhaled,而应该是dj,所以基本上,我想在某个符号出现之前包括每个字符。这串是字母数字的。在
只要一个字符不在phrase中,循环就会添加到pun中,相反,您应该检查字符是否在短语中,break中。在此之前,您将继续向pun添加字符:
phrase
pun
break
for item in string: if item in phrase: break pun += item
当执行时,它现在正确地输出"dj"。在
"dj"
如果前面的方法还不够,您还可以考虑从itertools得到{},如果前面的方法还不够:
itertools
还有一种方法不使用break(?)可能是通过使用一个布尔标志来指示是否看到了phrase中的值,然后在决定是否应该添加到pun时,可以根据该标志执行操作:
phrase='!_#@%' pun='' string='dj!khaled' seen = False for item in string: if item in phrase: seen = True if not seen: pun += item print(pun)
另一种方法是用一个while循环来实现
while
forbidden ='!_#@%' string='dj_khaled' result ="" i = 0 while i<len(string) and string[i] not in forbidden: result = result + string[i] i = i+1 print( result )
但这更容易出错,但在功能上与在Jin的第一个示例中使用break相同。在
以及我在评论中提到的功能版本
使用index方法编制索引可以更轻松地完成此操作:
index
pun = string[:string.index(phrase)] print(pun)
如果我们有多个“短语”,并且有些短语可能不在字符串中:
只要一个字符不在
phrase
中,循环就会添加到pun
中,相反,您应该检查字符是否在短语中,break
中。在此之前,您将继续向pun
添加字符:当执行时,它现在正确地输出
"dj"
。在如果前面的方法还不够,您还可以考虑从},如果前面的方法还不够:
^{pr2}$itertools
得到{还有一种方法不使用
break
(?)可能是通过使用一个布尔标志来指示是否看到了phrase
中的值,然后在决定是否应该添加到pun
时,可以根据该标志执行操作:另一种方法是用一个
while
循环来实现但这更容易出错,但在功能上与在Jin的第一个示例中使用
break
相同。在以及我在评论中提到的功能版本
^{pr2}$使用
index
方法编制索引可以更轻松地完成此操作:如果我们有多个“短语”,并且有些短语可能不在字符串中:
^{pr2}$相关问题 更多 >
编程相关推荐