我想知道是否有一种方法可以将python中的对象名称打印为字符串。例如,我想说ENEMY1还剩2 hp或ENEMY2还剩4 hp。有办法吗?\
class badguy:
def __init__(self):
self.hp = 4
def attack(self):
print("hit")
self.hp -= 1
def still_alive(self):
if self.hp <=0:
print("enemy destroyed")
else :
print (str(self.hp) + " hp left")
# creating objects
enemy1 = badguy()
enemy2 = badguy()
enemy1.attack()
enemy1.attack()
enemy1.still_alive()
enemy2.still_alive()
Run Code Online (Sandbox Code Playgroud) 如果我有一个清单:
list_1 = ["apples", "apricots", "oranges"]
Run Code Online (Sandbox Code Playgroud)
我将一个新项目添加到列表中:“浆果”
list_1 = ["apples", "apricots", "oranges", "berries"]
Run Code Online (Sandbox Code Playgroud)
在幕后(可以这么说),我想我记得读过Python创建了另一个列表(list_2)并将其指向原始列表(list_1),以便list_1保持静态......如果这是真的,它看起来会吗?像这样的东西(在引擎盖下)?
list_1 = ["apples", "apricots", ["oranges", "berries"]]
Run Code Online (Sandbox Code Playgroud)
所以这样一来,原来的列表就保持了原来的大小。这是正确的看待方式吗?
这是我到目前为止:
import re
text = "If you want to call me, my old number was 905-343-2112 and it has
been changed to 289-544-2345"
phone = re.findall(r'((\d{3})-(\d{3})-(\d{4}))', text)
for call in phone:
print (call[0])
Run Code Online (Sandbox Code Playgroud)
我猜我的正则表达式找不到电话号码是不是很好,因为如果我在打印电话时取出方括号,它似乎给了我整数,然后它分解了每组数字.我怎么能抛光这段代码
我正在处理一系列我想搜索的文本,只找到4个字母的单词.它有效,除了它还可以找到4个以上的字母单词.
import re
test ="hello, how are you doing tonight?"
total = len(re.findall(r'[a-zA-Z]{3}', text))
print (total)
Run Code Online (Sandbox Code Playgroud)
它找到15,虽然我不确定它是如何发现的那么多.我以为我可能不得不使用\ b来选择单词的开头和结尾,但这似乎对我没用.