![](/img/trans.png)
[英]Bash: Get value of variable from string of variable name (when string contains other characters than variable name)
[英]printing variable that contains string and 2 other variables
var_a = 8
var_b = 3
var_c = "hello my name is:",var_a,"and",var_b,"bye"
print(var_c)
當我運行程序時,var_c被打印出來像這樣:('你好我的名字是:',8,'和',3,'再見')但是所有的括號等也被打印出來,為什么會這樣呢?擺脫那些符號的方法?
如果我像這樣運行程序:
print("hello my name is:",var_a,"and",var_b,"bye")
我沒有那個問題
您可以格式化字符串以獲得預期的字符串輸出。
var_c = "hello my name is: {} and {}, bye".format(var_a, var_b)
如評論所示,您的現有輸出是由於變量作為元組返回,而您希望它作為一個字符串。
在Python 3.6+中,您可以使用新的f-strings( 格式化的字符串文字 ):
var_c = f"hello my name is: {var_a} and {var_b}, bye"
var_c
實際上是一個元組,因此print
會像這樣解釋它並打印出它的表示。
var_a = 8
var_b = 3
var_c = "hello my name is:", var_a, "and", var_b, "bye"
但你可以告訴print
使用元組作為參數*
print(*var_c)
結果:
hello my name is: 8 and 3 bye
(當然這是理論上的,最好使用str.format
作為其他答案說)
您應該將var_c創建為字符串,如下所示
var_c = "hello my name is: %s and %s bye" % (var_a, var_b)
var_c = "hello my name is:",var_a,"and",var_b,"bye"
使用這一行,你將var_c作為元組...使它成為字符串
var_d = "hello my name is:%s and %s bye" % (var_a,var_b)
print(var_d)
它會輸出
hello my name is:8 and 3 bye
你的程序正在創建一個元組並打印元組:
var_a = 8
var_b = 3
var_c = "hello my name is:", var_a, "and", var_b, "bye"
print(var_c)
輸出:
('hello my name is:', 8, 'and', 3, 'bye')
或者像這樣打印:
for item in var_c:
print(item+' ', end='')
輸出:
hello my name is: 8 and 3 bye
那是因為你使用語法來創建一個元組!
tup = "a", "b", "c", "d"
請參閱: https : //www.tutorialspoint.com/python/python_tuples.htm 。
如果你只想連接這些,你可以寫:
var_c = "hello my name is: " + str(var_a) + " and " + str(var_b) + " bye"
var_a = 8
var_b = 3
var_c = "hello my name is:", var_a, "and", var_b, "bye"
print(var_c)
輸出:
('hello my name is:', 8, 'and', 3, 'bye')
或者像這樣打印:
for item in var_c:
print(item+' ', end='')
輸出:
hello my name is: 8 and 3 bye
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.