2014-10-04 33 views
-1

我做節目有一天用於打印一個程序的輸出如下:三角程序代碼

1 
22 
333 
4444 
55555 

我研究這個在網時,我發現this snippet of code

n=input('Enter a number') 
for i in range(1,n+1): 
    print str(i)*i 

它產生了我想要的輸出,但是我不明白最後一行說

str(i)*i 

爲什麼是str?我在代碼中看不到字符串?請任何人都可以向我解釋這一點?我不想寫一個我不明白的代碼。

+0

您是否試過查找[文檔](https://docs.python.org/2/library/functions.html#str)?在解釋器中試用它? – jonrsharpe 2014-10-04 12:50:20

+0

@jinrsharpe是的,我相信它沒有工作....那就是爲什麼我來到這裏... – 2014-10-04 12:52:13

+0

你是什麼意思*「相信它沒有[原文]工作」* ?!你嘗試了什麼,發生了什麼以及你不明白什麼? – jonrsharpe 2014-10-04 12:53:48

回答

2

str()將整數i轉換爲字符串對象。乘以而不是一個整數,產生重複的字符串,而整數相乘會給你,而不是一個不同的整數

>>> i = 5 
>>> 5 * 5 
25 
>>> str(5) 
'5' 
>>> str(5) * 5 
'55555' 

所以5 * 525,但'5' * 5'55555'代替。

+0

好吧....非常感謝! – 2014-10-04 12:41:22

+0

爲什麼每個人都在排斥我的問題?我發佈了源和足夠的研究....即時消息沒有讓人勺子餵我....我會被阻止... – 2014-10-04 12:43:20

+1

@MadhavManohar:我沒有投票,但查找文檔,並嘗試自己的東西應該是你研究的一部分。例如,我的回答向您展示瞭如何在交互式解釋器中爲您自己嘗試。 – 2014-10-04 12:44:41

0

在它使用str的代碼,因爲如果它是一個整數,這將成倍然後打印:

>>> i = 4 
>>> i * i 
16 

但如果它是str將打印i時間:

>>> str(i) * i 
'4444' 
+2

不是5次,4次。 – 2014-10-04 12:45:47

0

str()只是返回字符串對象。所以如果你乘以字符串,它會重複你的字符串,對於整數,它將執行數學運算。

+0

Python並沒有真正的類型轉換。 'str()'返回一個新的對象,一個字符串對象。 – 2014-10-04 12:46:31

+0

感謝您糾正我的先生:) – 2014-10-04 12:47:45