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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: یه سوال کوچولو در باره پایتون: چرا برنامه من اینجوری جواب میده؟  (دفعات بازدید: 2860 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین ابراهیم مشهدی تفرشی

  • Sr. Member
  • *
  • ارسال: 336
  • جنسیت : پسر
  • همیشه یک راه بهتر هست.
ببخشید سوال من به کمی ساده و احمقانه به نظر می رسه
من داشتم روی کار با رشته ها تمرین می کردم گفتم یه کد بنویسم که رشته رو بگیره و برعکس کنه
این کد رو نوشتم
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
ET

آفلاین amin-asa

  • Full Member
  • *
  • ارسال: 161
  • جنسیت : پسر
سلام

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

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

میتونی از sys.stdout.write استفاده کنی.
* زندگی خالی نیست *
* مهربانی هست، سیب هست، ایمان هست *
* آری تا شقایق هست، زندگی باید کرد *

آفلاین ابراهیم مشهدی تفرشی

  • Sr. Member
  • *
  • ارسال: 336
  • جنسیت : پسر
  • همیشه یک راه بهتر هست.
سلام

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

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

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

آفلاین amin-asa

  • Full Member
  • *
  • ارسال: 161
  • جنسیت : پسر
سلام

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

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

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

عایا!!! :)
بله لازم هست ماژول sys رو import کنی.
* زندگی خالی نیست *
* مهربانی هست، سیب هست، ایمان هست *
* آری تا شقایق هست، زندگی باید کرد *

آفلاین ابراهیم مشهدی تفرشی

  • Sr. Member
  • *
  • ارسال: 336
  • جنسیت : پسر
  • همیشه یک راه بهتر هست.
ایول کار کرد
import sys
resh = raw_input("Say something?")
i = 1
while i <= len(resh):
sys.stdout.write(resh[-i])
i = i + 1
با وجود اینکه خیلی کوچیک و ساده است ولی با مزه است
مرسی
« آخرین ویرایش: 09 بهمن 1392، 10:51 ب‌ظ توسط ابراهیم مشهدی تفرشی »
ET

آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر
راه ساده‌تری هم هست:
text = input("Enter Something: ")
print (text[::-1])
(:

آفلاین ابراهیم مشهدی تفرشی

  • Sr. Member
  • *
  • ارسال: 336
  • جنسیت : پسر
  • همیشه یک راه بهتر هست.
راه ساده‌تری هم هست:
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])
ایول هوش برنامه نویسی شما بیشتر از من بود
« آخرین ویرایش: 10 بهمن 1392، 01:15 ق‌ظ توسط ابراهیم مشهدی تفرشی »
ET

آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر
نسخه پایتون شما چنده؟
این کد برای پایتون سه هست.

آفلاین amin-asa

  • Full Member
  • *
  • ارسال: 161
  • جنسیت : پسر
به این شکل هم میشه:

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
* زندگی خالی نیست *
* مهربانی هست، سیب هست، ایمان هست *
* آری تا شقایق هست، زندگی باید کرد *

آفلاین ابراهیم مشهدی تفرشی

  • Sr. Member
  • *
  • ارسال: 336
  • جنسیت : پسر
  • همیشه یک راه بهتر هست.
نسخه پایتون شما چنده؟
این کد برای پایتون سه هست.
نخسه پایتون من  اینه
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
« آخرین ویرایش: 10 بهمن 1392، 01:56 ب‌ظ توسط ابراهیم مشهدی تفرشی »
ET

آفلاین amin-asa

  • Full Member
  • *
  • ارسال: 161
  • جنسیت : پسر
این یکی خوبه دوست من  ;)

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
* زندگی خالی نیست *
* مهربانی هست، سیب هست، ایمان هست *
* آری تا شقایق هست، زندگی باید کرد *

آفلاین ابراهیم مشهدی تفرشی

  • Sr. Member
  • *
  • ارسال: 336
  • جنسیت : پسر
  • همیشه یک راه بهتر هست.
این یکی خوبه دوست من  ;)

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
ET

آفلاین amin-asa

  • Full Member
  • *
  • ارسال: 161
  • جنسیت : پسر
نیازی به import string نداری.

خواهش میکنم.  ;D
* زندگی خالی نیست *
* مهربانی هست، سیب هست، ایمان هست *
* آری تا شقایق هست، زندگی باید کرد *

آفلاین ابراهیم مشهدی تفرشی

  • Sr. Member
  • *
  • ارسال: 336
  • جنسیت : پسر
  • همیشه یک راه بهتر هست.
نیازی به import string نداری.

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