问题描述
我不想手动对每个声明的字符串变量求和。
word1 = "How"
word2 = "do"
word3 = "you"
word4 = "like"
word5 = "Python"
word6 = "so"
word7 = "far?"
totalword=word1+" "+word2+" "+word3+" "+word4+" "+word5+" "+word6+" "+word7
print(totalword)
解决方法
有办法但不是那么pythonic:
word1 = "How"
word2 = "do"
word3 = "you"
word4 = "like"
word5 = "Python"
word6 = "so"
word7 = "far?"
for i in range(7):
totalword += globals().get('word' + i)
,
这并不理想,但应该可行。
word1 = "How"
word2 = "do"
word3 = "you"
word4 = "like"
word5 = "Python"
word6 = "so"
word7 = "far?"
mask = "word"
final = " ".join([eval(mask+str(x)) for x in range(1,8)])
print(final)
,
你可以使用这个:
word1 = "How"
word2 = "do"
word3 = "you"
word4 = "like"
word5 = "Python"
word6 = "so"
word7 = "far?"
res = ' '.join([globals()[x] for x in globals() if 'word' in x])
print(res)
# How do you like Python so far?
不过,这是一个不好的做法。
此外,您可以使用正则表达式来说明您感兴趣的全局变量类型,例如在 n-m
之间有一个数字等等。
您可以尝试使用表格中的变量进行类似的操作
word1 = "How"
word2 = "do"
word3 = "you"
word4 = "like"
word5 = "Python"
word6 = "so"
word7 = "far?"
words = [word1,word2,word3,word4,word5,word6,word7]
totalword = ""
for _ in range(len(words)):
totalword += words[_]+" "
print(totalword)