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

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

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


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

نویسنده موضوع: برخی از مشکلات من در دستورات پایتون  (دفعات بازدید: 4615 بار)

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

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
برخی از مشکلات من در دستورات پایتون
« : 28 امرداد 1395، 02:03 ب‌ظ »
سلام
من یه مشکلی تو اجرای دستورات پاتون دارم بینید مشکل از کجاست
این دستورو که اجرا می کنم اینو میگه
while True:
   s = raw_input ('enter something: ')
   if s == 'quit':
      break
   if len (s) < 3:
         continue
   print ('input is of sufficent lentgth')
   # do other kinds of processing here...
اجرای دستور داخل کاماند پارت
Traceback (most recent call last):
  File "C:\Documents and Settings\amir\Desktop\New Folder\continue.py", line 2,
in <module>
    s = raw_input ('enter something: ')
NameError: name 'raw_input' is not defined
و دومین دستور
while True:
   s = raw_input ('Enter something : ')
   if s == 'quit':
      break
      print ('Length of the string is'), len(s)
print ('Done')
اجرای دستور
Traceback (most recent call last):
  File "C:\Documents and Settings\amir\Desktop\New Folder\break.py", line 2, in
<module>
    s = raw_input ('Enter something : ')
NameError: name 'raw_input' is not defined
مشکل از کجاست لطفا راهنمایم کنید
در اصل پیغامی که باید دستودر اول میداد
python continue.py
enter something : a
enter something : 12
enter something : abc
input is of sufficent length
enter something : quit
و پیغامی که دستور دوم باید میداد
python break.py
Enter something : Programming is fun
Length of the string is 18
Enter something : When the work is done
Length of the string is 21
Enter something : if you wanna make your work also fun:
Length of the string is 37
Enter something : use Python!
Length of the string is 12
Enter something : quit
Done
کمک کنید لطفا
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین فاروق

  • Hero Member
  • *
  • ارسال: 992
  • جنسیت : پسر
  • <شعار>این یک شعار است</شعار>
    • تارنمای فاروق
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #1 : 28 امرداد 1395، 03:20 ب‌ظ »
واسه جفتشون ‏raw_input‏ رو با ‏input‏ جایگزین بکن
http://pcworms.blog.ir
بعد از بررسی پست های قدیمیم، فکر میکنم یک عذرخواهی بدهکارم! معذرت میخوام و اگر اشتباه کردم مستقیم و روشن راهنمایی کنید تا تکرار نکنم.
کانال IRC

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #2 : 01 شهریور 1395، 10:00 ق‌ظ »
سلام
دوبار یه مشکل دیگه تو یکی از ذستورات پایتون برام پیش اومده
ببینید ایا خودتون میتونید این دستورو اجرا کنید
def sayhello():
print 'hello world !' # block beloging  to the
function
# end  of function

sayhello() # call the function
اگر دستور به خوبی اجرا شد خروجی زیر رو باید بده
python functionl.py
hello worled !


من که میخوام این دستور رو اجرا کنم هیچ عکس العملی نشمون  و خروجی رو که باید اجرا میکرد رو اجرا نمی کنه  شما امتحان کنید  یا به من بگید چیکار کنم
من کلا با دستور هایی که  اولش با (def) شروع میشه مشکل دارم
« آخرین ویرایش: 02 شهریور 1395، 10:39 ق‌ظ توسط AMIR YAGHOUBI »
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین Nelliel

  • High Hero Member
  • *
  • ارسال: 2151
  • جنسیت : پسر
  • Nelliel Tu Odelschwanck
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #3 : 01 شهریور 1395، 12:02 ب‌ظ »
سلام, اولا اینکه برای حل مشکل برنامه نویسی باید از تگ کد استفاده می‌کردی و قشنگ همه‌ی indentها را با فاصله‌‌ها رعایت می‌کردی تا دوستان بهتر جواب بدن, دوما باید بگی که الان داری پایتون دو کد می‌زنی یا با پایتون سه:

نقل‌قول
واسه جفتشون ‏raw_input‏ رو با ‏input‏ جایگزین بکن

حرفی که فاروق زد دقیقا همون موردی بود که گفتم, چرا؟ چون توی پایتون سه دیگه raw_input نیست و یکی از تغییرات پایتون 2 و 3 بوده!

یه مثال که می‌تونم بزنم; کد دومت که گذاشتی, اگر پایتون سه باشه باید پرانتز بذاری برای پرینت کردن و ... که کلا از پرانتز استفاده نکری, indent را هم که کلا رعایت نکردی تو کد دوم و مهم تر از همه باید خروجی خودت را هم می‌ذاشتی! هر چند کاملا مشخصه مشکل شما سینتکس هست و نه ... :)
« آخرین ویرایش: 01 شهریور 1395، 12:05 ب‌ظ توسط Invoker »
طرفدار انیمه و مانگا - کاربر آرچ لینوکس

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #4 : 01 شهریور 1395، 02:53 ب‌ظ »
من از پایتون 3.3 استقاده کیکنم
موقع تایپ دستورات پرانتز ها و فاصله ها رو رعایت میکنم و هیچ اروری دررابطه با اشتباه وارد کردن دستورات دریافت نمی کنم فقط  مشکلم اینه که میزنم دستور اجرا بشه  هیچ عکس العملی نشون نمیده و خروجی رو که باید بده نمی ده اصلا هیچ خروجی رو نمی ده ببینید این دستور اصلا واسی شما کار میکنه یا انکه من باید چیکار کنم
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19754
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #5 : 01 شهریور 1395، 04:23 ب‌ظ »
تا توی برچسب کد قرار ندی، کسی نمی‌تونه اجراش کنه
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #6 : 02 شهریور 1395، 06:21 ب‌ظ »
تا توی برچسب کد قرار ندی، کسی نمی‌تونه اجراش کنه
طرز قرار دادن تو برچسب کد رو بلد نیستم مگه نمیشه از اونجا کد ها رو برداشت و تایپ کرد چرا کار نمی کنه
« آخرین ویرایش: 02 شهریور 1395، 07:42 ب‌ظ توسط AMIR YAGHOUBI »
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #7 : 02 شهریور 1395، 07:46 ب‌ظ »
لطفا بگید باید چیکار کنم خیلی دیگه از یاد گرفتن پایتون عقب افتادم
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین koosha

  • Hero Member
  • *
  • ارسال: 734
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #8 : 02 شهریور 1395، 08:33 ب‌ظ »
گفتند که ! داخل برچسب قرارش بدید .
GNU/Linux
Debian8
I3 WM

آفلاین s1mpleworld

  • Sr. Member
  • *
  • ارسال: 309
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #9 : 02 شهریور 1395، 08:57 ب‌ظ »
با سلام. برای قرار دادن کد هایتان از برچسپ (تگ) کد در انجمن استفاده کنید. بدون استفاده از این تگ، خوانایی کد سخت خواهد شد و دچار به هم ریختگی خواهد شد.


برای مثال شما برای استفاده از تگ کد باید به این صورت شود:

while True:
   s = raw_input ('enter something: ')
   if s == 'quit':
      break
   if len (s) < 3:
         continue
   print ('input is of sufficent lentgth')
   # do other kinds of processing here...

کدی که نوشته اید نحوه ی نگارش آن مربوط به python 2 میباشد و به خوبی در python 2 قابل اجرا میباشد. شما در حال اجرای این کد در python 3 هستید که ایراد دریافت میکنید.

راهنمایی: بسته به توزیع ممکن است python 2 و یا python 3 پیشفرض باشد. لذا اجرای دستور python اشاره به نسخه ی پیشفرض خواهد داشت. حتما قبل از اجرای کد هایتان نسخه ی python پیشفرض را چک کنید:

python --version

اگر چندین نسخه از python در سیستم شما نصب شده باشد، میتوانید با دستور زیر بیابید که با اجرای کدام دستور چه نسخه هایی از python در مسیر قابل اجرا هستند:

ls /usr/bin | grep python

خروجی نمونه:
python
python2
python2.7
python3
python3.4

به عنوان مثال بنده برای اجرای کد خود با python نسخه ی ۳ باید به جای دستور python mycode.py (این دستور در اینجا نسخه ی پیش فرض را اجرا می کند) دستور python3 mycode.py و یا python3.4 mycode.py را اجرا کنم و برای اجرای آن با نسخه ی 2 باید python2 mycode.py و python2.7 mycode.py را اجرا کنم.


به هر حال اگر قصد دارید کد بالا را تبدیل به کد python 3 کنید باید raw_input را به input تبدیل کنید.
کد بعد شما نیز دارای همین ایراد است.

کد ویرایش شده:

while True:
#   s = raw_input ('enter something: ') #    this code can just run on python 2.x only
   s = input ('enter something: ')      #    correct syntax for python 3.x
   if s == 'quit':
      break
   if len (s) < 3:
         continue
   print ('input is of sufficent lentgth')
   # do other kinds of processing here...

نکته: در python 2 دستور print یک دستور داخلی python بوده است. در حالی که print در python 3 به یک تابع تبدیل شده است. لذا در pyhton 2 به کار بردن یا نبردن پرانتز موردی ایراد نمی کند.

print 'test'
print ('test')

خروجی دو دستور بالا در python 2 یکسان هستند.

اما در python 3 به علت اینکه این دستور یک تابع است، حتما باید با پرانتز به کار برده شود. در مثال بالا برای python3 خط اول غلط و خط دوم صحیح است
« آخرین ویرایش: 02 شهریور 1395، 09:20 ب‌ظ توسط s1mpleworld »
با افتخار قدرت گرفته از Fedora 32

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #10 : 02 شهریور 1395، 09:48 ب‌ظ »
ممنون از نکته حاتون
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #11 : 03 شهریور 1395، 11:33 ق‌ظ »
def sayhello():
       print ('hello worled ') # block beloging to the
function
end of function #
sayhello() # call the function
اقای بهزادی اینم از برچسب کد  این دستور نمی دونم چرا کار نمی کنه میزنم هیچ خروجی رو نمی ده
« آخرین ویرایش: 03 شهریور 1395، 01:00 ب‌ظ توسط AMIR YAGHOUBI »
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین Victor

  • Sr. Member
  • *
  • ارسال: 256
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #12 : 03 شهریور 1395، 01:29 ب‌ظ »
من یه تغیراتی که تو دستورات انجام دادم باعث شد که حداقل یه خروجی تونست بده  ولی نه به درستی که باید اجرا میکرد نکرد
def say_hello():
        print ('hello world ') # block beloging to the function

# end of function
say_hello() # call the function
خروجی رو که داد
hello world
در واقع خروجی رو که باید میداد
functionl.py$
hello world
« آخرین ویرایش: 03 شهریور 1395، 03:04 ب‌ظ توسط AMIR YAGHOUBI »
Hacking is not easy.Enjoy the virtual world in the real world of sleep

آفلاین koosha

  • Hero Member
  • *
  • ارسال: 734
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #13 : 03 شهریور 1395، 02:37 ب‌ظ »
خب درسته دیگه !
در ضمن world درستش هست .
GNU/Linux
Debian8
I3 WM

آفلاین s1mpleworld

  • Sr. Member
  • *
  • ارسال: 309
  • جنسیت : پسر
پاسخ : برخی از مشکلات من در دستورات پایتون
« پاسخ #14 : 03 شهریور 1395، 05:41 ب‌ظ »
من یه تغیراتی که تو دستورات انجام دادم باعث شد که حداقل یه خروجی تونست بده  ولی نه به درستی که باید اجرا میکرد نکرد
def say_hello():
        print ('hello world ') # block beloging to the function

# end of function
say_hello() # call the function
خروجی رو که داد
hello world
در واقع خروجی رو که باید میداد
functionl.py$
hello world

دوست عزیز تابع شما گفته که در هنگام فراخوانی فقط print را اجرا کند. پس خروجی شما صحیح است
با افتخار قدرت گرفته از Fedora 32