2017-09-07 60 views
0

在碼的隨後的塊後面+功能(i)所述邏輯:的Python - 什麼是+

print('My name is') 
for i in range(5): 
    print('Jimmy Five Times (' + str(i) + ')') 

據我所知,代碼將運行5次,其中i = 0〜4

但是,我不明白在str()函數前後添加的+運算符的邏輯。

這個+ function()+如何應用於其他場景?

+0

字符串連接 – C8H10N4O2

+0

由於'函數()'總是*計算爲一個值第一*,然後操作者施加。 'str'會返回一個'str'或者拋出一個錯誤。字符串之間的'+'運算符*連接*。所以試試''你好「+」世界「 –

回答

2

str(i)i的字符串表示形式。 Documentation

返回一個str版本的對象。

如果abc是字符串,然後a + b + c是導致其串聯的字符串。

因此,i是和int之間04,說3'Jimmy Five Times (' + str(i) + ')'是如下因素的字符串:

'Jimmy Five Times (3)' 
+0

我想補充說,這不是在python中格式化字符串的最佳方式。這是一種Java風格的不好的寫作方式。 –

+0

@ Jean-FrançoisFabre順便說一句,您如何看待Python 3.6的格式?我個人不喜歡它,除了短弦,我覺得它很髒...... –

+0

'f'字符串?好吧,我不知道,我們沒有這個版本的工作。停在3.5,需要2.7的兼容性。所以在我深入研究之前還需要一段時間。但我採用了'str.format',它足夠強大。 –

0

在Python中,+用於串contate。 即:

data1 = "Hello" 
data2 = "World" 

print(data1+data2) 

的輸出將是:

HelloWorld 
0

str是返回的i字符串表示的函數,因此:

print('My name is') 
for i in range(5): 
    print('Jimmy Five Times (' + str(i) + ')') 
# => 'Jimmy Fine Times (0)' 
# => 'Jimmy Fine Times (1)' 
# => 'Jimmy Fine Times (... 

調用返回字符串的函數在字符串連接'A' + func() + 'B'中,將只使用函數返回的字符串替換函數調用(如果沒有錯誤R或異常曾引起),例如:

def getName(): 
    name=input('Enter name: ') 
    return name 

print('Hello '+getName()+', Welcome to StackOverflow.') 

#In: Enter name: Jack 
#Out: Hello Jack, Welcome to StackOverflow.