2011-09-05 6 views
5

में तारांकन कला मैं इस तस्वीर को अजगर में बनाना चाहता हूं!पायथन

x=1 
while x<10: 
print '%10s' %'*'*x 
x=x+1 
उदासी ऊपर चित्र के रूप में डॉट्स की सही संख्या की रचना कुछ निर्माण करने के लिए लगता है कौन सा

, लेकिन उन डॉट तारक से प्रत्येक को एक दूसरे से अलग स्थान दिया गया है से अलग होते हैं:

  * 
     ** 
     *** 
     **** 
    ***** 
    ****** 
    ******* 
    ******** 
********* 
********** 

मैं इस में प्रवेश किया , पूरी तरह से सही के बजाय सही।

किसी के पास एक चालाक दिमाग है कि मैं जो चाहता हूं उसे प्राप्त कर सकता हूं? क्योंकि % और * ऑपरेटरों एक ही पूर्वता और समूह है

+8

ओबेलिक्स के बारे में क्या? – Tsar

+3

3 संपादन और कोई भी एस्टरिक्स-> एस्टेरisk =) – Tsar

उत्तर

13
'%10s' %'*'*x 

रूप

('%10s' % '*') * x 

पार्स किया जा रहा है बाएँ-से-सही [docs]। आप कोष्ठकों को जोड़ने के लिए, इस तरह की जरूरत है:

x = 1 
while x < 10: 
    print '%10s' % ('*' * x) 
    x = x + 1 

आप संख्या की एक सीमा के माध्यम से लूप, यह अधिक थोड़ी देर के पाश की तुलना में एक for पाश का उपयोग करने के मुहावरेदार माना जाता है चाहते हैं। इस तरह:

for x in range(1, 10): 
    print '%10s' % ('*' * x) 

for x in range(0, 10) जावा या सी

+0

शानदार नहीं किया है! Walla! क्या अच्छा जवाब है! बहुत बहुत धन्यवाद - पूरी तरह से काम करता है! - यह पहला जवाब है जो मैं देखता हूं इसलिए मैं आपको धन्यवाद देने के लिए टिप्पणी कर रहा हूं लेकिन निश्चित रूप से हर किसी के लिए बहुत सारे धन्यवाद! पाठ्यक्रम की मेरी गहरी प्रशंसा! – Azz

+0

मुझे लगता है कि आपका मतलब है "वोला!", फ्रांसीसी "वहां यह है!", "प्रेस्टो!", या "वूट, कुत्ते!" – PaulMcG

+0

http://en.wikipedia.org/wiki/Wallah_(अरबी) –

8

स्ट्रिंग वस्तु ठीक इस बात के लिए rjust और ljust तरीकों है में for(int x = 0; x < 10; x++) के बराबर है।

>>> n = 10 
>>> for i in xrange(1,n+1): 
... print (i*'*').rjust(n) 
... 
     * 
     ** 
     *** 
     **** 
    ***** 
    ****** 
    ******* 
    ******** 
********* 
********** 

या, वैकल्पिक:

>>> for i in reversed(xrange(n)): 
... print (i*' ').ljust(n, '*') 
... 
     * 
     ** 
     *** 
     **** 
    ***** 
    ****** 
    ******* 
    ******** 
********* 
********** 

मेरी दूसरी उदाहरण भरने चरित्र के रूप में प्रिंट करने योग्य चरित्र के रूप में एक अंतरिक्ष चरित्र का उपयोग करता है, और *।

ljust या rjust पर तर्क टर्मिनल चौड़ाई है। जब आप चैट डीबग प्रिंटआउट करते हैं तो मैं अक्सर शीर्षकों के साथ अनुभागों को अलग करने के लिए इनका उपयोग करता हूं, उदा। print '--Spam!'.ljust(80, '-')

2

यह ऑपरेटर पूर्वता के कारण है, यह एक का उपयोग करें: के रूप में अपनी तस्वीर 10 तारक के साथ समाप्त होता

x=1 
while x<10: 
print '%10s' % ('*'*x) 
x=x+1 
1

सटीक होना करने के लिए, आप की जरूरत है।

for i in range(1, 11): 
    print "%10s"%('*' *i)