View Full Version : سوال: کد ایجاد space در پایتون
mina-r
یک شنبه 10 مرداد 1389, 10:53 صبح
سلام ،
من این کد را در یک فایل پایتون دارم
Title=u"name\n direct manager \n company
\n برای رفتن به سطر بعدی ، اما اگه بخوام تو یک سطر با فاصله بنویسم کد space چیه ؟
ممنون می شم زود جواب بدین .
|Smyty|
یک شنبه 10 مرداد 1389, 19:01 عصر
مثل html نیست که space هارو حساب نکنه؛ شما همون space رو بزن میشه.
mina-r
دوشنبه 11 مرداد 1389, 13:19 عصر
ممنمون از جوابتون اما من یه همچین چیزی می خوام
رئیس واحد مدیر عامل
کلمه مدیر را با کد بالا دارم چطور می تونم رئیس رو به طوری که کلمه رئیس گوشه سمت راست باشه و مدیر عامل سمت چپ صفحه اضافه بشه. ممنون می شم جواب بدین.
PC2st
دوشنبه 11 مرداد 1389, 13:51 عصر
به جای n\ از t\ استفاده کنید.
یا اینکه اگر میخواهید طول رشتهها ثابت باشد، بهتر است متن را قالببندی کنید:
title = "%8s: %-18s END\n%8s: %-18s END" % ("Name", "some name", "Company", "another name")
print(title)
از عملگر % برای قالببندی متن استفاده میشود (s% و هر چیزی که بعد از علامت % در متن وجود دارد، به عنوان یک conversion عمل تبدیل و قالببندی را انجام میدهند دقیقاً مطابق با همان استانداردی که در زبان C وجود دارد).
در پایتون 2.6 به بالاتر و 3.0 میتوانید از روش format استفاده کنید (تابع format عضو کلاس string).
|Smyty|
دوشنبه 11 مرداد 1389, 15:00 عصر
بله، صحیح ! الان منظورتونو متوجه شدم که ایشون جواب دادن. format هم به این صورته: ( البته روش قدیمی هنوز جوابگوست ! )
>>> print ('Hello {0}'.format('There !'))
Hello There !
>>>
mina-r
سه شنبه 12 مرداد 1389, 09:41 صبح
ممنون از پاسختون ، اما من از t/ استفاده کردم و چند کاراکتر بیشتر جلو نرفت من می خوام توی یک سطر کلمه رئیس ابتدای سطر باشه و کلمه مدیر انتهای سطر .
خواهش می کنم راهنمایی کنید .
franchesco
سه شنبه 12 مرداد 1389, 10:21 صبح
خوب \t به میزان 8 کاراکتر جلو میره ! شما اگه بیشتر نیاز دارین به تعداد بیشتر استفاده کنین
>>> print 'boss \t\t\t\t\t\t\t\t\t manager'
boss manager
>>>
mina.hendrix.7474
دوشنبه 17 آبان 1389, 13:31 عصر
کدش اینه
" "
مثلا print " "
dp_split
یک شنبه 05 دی 1389, 15:31 عصر
سلام،
احتمالا تابعی وجود نداشته باشه که این کار را (یعنی نوشتن بخشی از یک رشته در سمت چپ و ادامه در سمت راست صفحه) را برای شما انجام بدهد و خودتان باید این کد این کار را بنویسید. برای اینکار کافی است اندازه ی پنجره ی کنسول را بدست بیاورید و سپس با توجه به عرض صفحه و طول دو رشته ی مورد نظر کاراکتر فاصله چاپ کنید.
گمان کنم این کار در ویندوز و لینوکس به روش های متفاوتی انجام داده شود. در ویندوز می توانید از چیزی مانند کد زیر استفاده کنید:
from ctypes import windll, create_string_buffer
import struct
def print1(a, b):
h = windll.kernel32.GetStdHandle(-12)
csbi = create_string_buffer(22)
res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
(bufx, bufy, curx, cury, wattr,\
left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
sizex = right - left + 1
sizey = bottom - top + 1
print a + " " * (sizex-len(a)-len(b)) + b
print1("Modir", "Boss")
کد بدست آوردن ابعاد صفحه را از اینجا برداشتم: http://code.activestate.com/recipes/440694-determine-size-of-console-window-on-windows/
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.