انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: ابراهیم مشهدی تفرشی در 09 بهمن 1392، 03:11 ب‌ظ

عنوان: یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: ابراهیم مشهدی تفرشی در 09 بهمن 1392، 03:11 ب‌ظ
ببخشید سوال من به کمی ساده و احمقانه به نظر می رسه
من داشتم روی کار با رشته ها تمرین می کردم گفتم یه کد بنویسم که رشته رو بگیره و برعکس کنه
این کد رو نوشتم
resh = raw_input("Say something?")
i = 1
while i <= len(resh):
print resh[-(i)],
i = i + 1
که وقتی ورودی زیر رو بدی  ;)
ebrahim 12345خروجی زیر رو بده  \\:D/
54321 miharbeولی نمی دونم چرا ایجوری می شه  ](*,)  :o  ???
5 4 3 2 1  m i h a r b e
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: amin-asa در 09 بهمن 1392، 03:28 ب‌ظ
سلام

مشکل از این خط هست.
print resh[-(i)],

بعد از هر print یک space فاصله ایجاد میشه. (:

میتونی از sys.stdout.write استفاده کنی.
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: ابراهیم مشهدی تفرشی در 09 بهمن 1392، 04:50 ب‌ظ
سلام

مشکل از این خط هست.
print resh[-(i)],

بعد از هر print یک space فاصله ایجاد میشه. (:

میتونی از sys.stdout.write استفاده کنی.
خیلی ممنون باید برم امتحان کنم
راستی
اون وقت import لازم نمی شم عایا؟
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: amin-asa در 09 بهمن 1392، 04:58 ب‌ظ
سلام

مشکل از این خط هست.
print resh[-(i)],

بعد از هر print یک space فاصله ایجاد میشه. (:

میتونی از sys.stdout.write استفاده کنی.
خیلی ممنون باید برم امتحان کنم
راستی
اون وقت import لازم نمی شم عایا؟

عایا!!! :)
بله لازم هست ماژول sys رو import کنی.
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: ابراهیم مشهدی تفرشی در 09 بهمن 1392، 10:47 ب‌ظ
ایول کار کرد
import sys
resh = raw_input("Say something?")
i = 1
while i <= len(resh):
sys.stdout.write(resh[-i])
i = i + 1
با وجود اینکه خیلی کوچیک و ساده است ولی با مزه است
مرسی
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: Ma3X در 09 بهمن 1392، 11:08 ب‌ظ
راه ساده‌تری هم هست:
text = input("Enter Something: ")
print (text[::-1])
(:
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: ابراهیم مشهدی تفرشی در 10 بهمن 1392، 01:11 ق‌ظ
راه ساده‌تری هم هست:
text = input("Enter Something: ")
print (text[::-1])
(:
امتحان کردم ولی این جواب رو داد
Enter Something: 123456789
Traceback (most recent call last):
  File "ex bar a'''aks 2.py", line 2, in <module>
    print (text[::-1])
TypeError: 'int' object has no attribute '__getitem__'
ولی وقتی ایجوری شد درست کار کرد
text = raw_input("Enter Something: ")
print (text[::-1])
ایول هوش برنامه نویسی شما بیشتر از من بود
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: Ma3X در 10 بهمن 1392، 01:40 ق‌ظ
نسخه پایتون شما چنده؟
این کد برای پایتون سه هست.
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: amin-asa در 10 بهمن 1392، 11:42 ق‌ظ
به این شکل هم میشه:

from __future__ import print_function

resh = raw_input("Say something? ")
i = 1
while i <= len(resh):
  print(resh[-(i)], end='')
  i = i + 1
print()

خروجی:
$ python main.py
Say something? ebrahim 12345
54321 miharbe
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: ابراهیم مشهدی تفرشی در 10 بهمن 1392، 01:51 ب‌ظ
نسخه پایتون شما چنده؟
این کد برای پایتون سه هست.
نخسه پایتون من  اینه
Python 2.7.5+ (default, Sep 19 2013, 13:49:51)
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
در ضمن خیلی خوشحال می شم که دوستان هر کدوم به شیوه نویی رو معرفی می کنن که همون کار رو انجام می ده این باعث می شه من از هر کدومتون یه چیز جدید یاد بگیرم در کل کار خوبیه

برای انیکه کار باحالی شد من یه چیز جدید دارم  \\:D/ ببنم با این چیکار می کنید
یه برنامه ساده است مثل قبلی کدش اینه منتظر ایده های خلاقانه تون هستم
text = raw_input("Say something?")
index = 0
while index <= len(text)-1:
if text[index] == " ":
before_space = text[:index]
print before_space[::-1],
text = text[index+1:]
index = index +1
elif text[index] != " ":
index = index + 1
print text[::-1]
اگه بهش ورودی بدی مثلا
ebrahime mashhadiye tafreshiجواب می ده
emiharbe eyidahhsam ihserfatبه عبارتی ترتیب کلمه ها رو دست نمی زنه فقط حروف هر کلمه رو داخل خودش از آخر می نویسه
به طور خلاصه منطقش اینه که :
فرض : هر کلمه با خط فاصله تمام میشه
اول : خط فاصله رو پیدا میکنه
دوم : کلمه قبل از فاصله رو برعکس چاپ می کنه
سوم : کلمه برعکس شده رو با فاصله بعدش با هم از متن حذف می کنه
دوباره از اول تا برسه به کلمه آخر که بعدش هیچ فاصله ای نیست اول کلمه رو هم برعکس چاپ می کنه  8)

خداییش یه کم پدرمو در آورد یه گیر کوچیک داشت همش ایراد می گرفت  ??? :oکه من اصلا ول کردم رفتم بعد از چند ساعت رفتم کتابم - که دارم از روش پایتون یاد میگیرم - رو خوندم اومدم درست شد
البته با تشکر از دوست عزیز Ma3xx
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: amin-asa در 11 بهمن 1392، 02:41 ق‌ظ
این یکی خوبه دوست من  ;)

text = raw_input("Say something: ")
text = text.split()
for s in text:
  print s[::-1],

خروجی:
$ python main.py
Say something: ebrahime mashhadiye tafreshi
emiharbe eyidahhsam ihserfat
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: ابراهیم مشهدی تفرشی در 13 بهمن 1392، 07:26 ب‌ظ
این یکی خوبه دوست من  ;)

text = raw_input("Say something: ")
text = text.split()
for s in text:
  print s[::-1],
بله این خیلی خوبه
بعد از اینکه اون رو نوشتم درسشو خوندم
البته باید یه
import stringبهش اضافه بشه
ممنون از نظرتون
خروجی:
$ python main.py
Say something: ebrahime mashhadiye tafreshi
emiharbe eyidahhsam ihserfat
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: amin-asa در 14 بهمن 1392، 11:34 ق‌ظ
نیازی به import string نداری.

خواهش میکنم.  ;D
عنوان: پاسخ : یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟
ارسال شده توسط: ابراهیم مشهدی تفرشی در 16 بهمن 1392، 12:51 ب‌ظ
نیازی به import string نداری.

خواهش میکنم.  ;D
بله حق با شماست
توی این کتابه نوشته بود split بخشی از ماژول string است. به خاطر همین من اشتباها فکر کردم که لازمه ایمپورت بشه