انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: Victor در 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
کمک کنید لطفا
-
واسه جفتشون raw_input رو با input جایگزین بکن
-
سلام
دوبار یه مشکل دیگه تو یکی از ذستورات پایتون برام پیش اومده
ببینید ایا خودتون میتونید این دستورو اجرا کنید
def sayhello():
print 'hello world !' # block beloging to the
function
# end of function
sayhello() # call the function
اگر دستور به خوبی اجرا شد خروجی زیر رو باید بده
python functionl.py
hello worled !
من که میخوام این دستور رو اجرا کنم هیچ عکس العملی نشمون و خروجی رو که باید اجرا میکرد رو اجرا نمی کنه شما امتحان کنید یا به من بگید چیکار کنم
من کلا با دستور هایی که اولش با (def) شروع میشه مشکل دارم
-
سلام, اولا اینکه برای حل مشکل برنامه نویسی باید از تگ کد استفاده میکردی و قشنگ همهی indentها را با فاصلهها رعایت میکردی تا دوستان بهتر جواب بدن, دوما باید بگی که الان داری پایتون دو کد میزنی یا با پایتون سه:
واسه جفتشون raw_input رو با input جایگزین بکن
حرفی که فاروق زد دقیقا همون موردی بود که گفتم, چرا؟ چون توی پایتون سه دیگه raw_input نیست و یکی از تغییرات پایتون 2 و 3 بوده!
یه مثال که میتونم بزنم; کد دومت که گذاشتی, اگر پایتون سه باشه باید پرانتز بذاری برای پرینت کردن و ... که کلا از پرانتز استفاده نکری, indent را هم که کلا رعایت نکردی تو کد دوم و مهم تر از همه باید خروجی خودت را هم میذاشتی! هر چند کاملا مشخصه مشکل شما سینتکس هست و نه ... :)
-
من از پایتون 3.3 استقاده کیکنم
موقع تایپ دستورات پرانتز ها و فاصله ها رو رعایت میکنم و هیچ اروری دررابطه با اشتباه وارد کردن دستورات دریافت نمی کنم فقط مشکلم اینه که میزنم دستور اجرا بشه هیچ عکس العملی نشون نمیده و خروجی رو که باید بده نمی ده اصلا هیچ خروجی رو نمی ده ببینید این دستور اصلا واسی شما کار میکنه یا انکه من باید چیکار کنم
-
تا توی برچسب کد قرار ندی، کسی نمیتونه اجراش کنه
-
تا توی برچسب کد قرار ندی، کسی نمیتونه اجراش کنه
طرز قرار دادن تو برچسب کد رو بلد نیستم مگه نمیشه از اونجا کد ها رو برداشت و تایپ کرد چرا کار نمی کنه
-
لطفا بگید باید چیکار کنم خیلی دیگه از یاد گرفتن پایتون عقب افتادم
-
گفتند که ! داخل برچسب قرارش بدید .
-
با سلام. برای قرار دادن کد هایتان از برچسپ (تگ) کد در انجمن استفاده کنید. بدون استفاده از این تگ، خوانایی کد سخت خواهد شد و دچار به هم ریختگی خواهد شد.
برای مثال شما برای استفاده از تگ کد باید به این صورت شود:
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 خط اول غلط و خط دوم صحیح است
-
ممنون از نکته حاتون
-
def sayhello():
print ('hello worled ') # block beloging to the
function
end of function #
sayhello() # call the function
اقای بهزادی اینم از برچسب کد این دستور نمی دونم چرا کار نمی کنه میزنم هیچ خروجی رو نمی ده
-
من یه تغیراتی که تو دستورات انجام دادم باعث شد که حداقل یه خروجی تونست بده ولی نه به درستی که باید اجرا میکرد نکرد
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
-
خب درسته دیگه !
در ضمن world درستش هست .
-
من یه تغیراتی که تو دستورات انجام دادم باعث شد که حداقل یه خروجی تونست بده ولی نه به درستی که باید اجرا میکرد نکرد
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 را اجرا کند. پس خروجی شما صحیح است
-
من یه تغیراتی که تو دستورات انجام دادم باعث شد که حداقل یه خروجی تونست بده ولی نه به درستی که باید اجرا میکرد نکرد
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
سلام
این کد:
def say_hello():
print ('hello world ') # block beloging to the function
# end of function
say_hello() # call the function
این خروجی را داره:
hello world
و اما این کد اون خروجیای را داره که شما ازش صحبت کردید, در واقع کتابخانهی sys و argv :)
import sys
print(sys.argv[0])
def say_hello():
print("hello world")
say_hello()
-
یه مشکل دیگه برام پیش اومده
https://paste.ubuntu.ir/klwd (https://paste.ubuntu.ir/klwd)
-
یه مشکل دیگه برام پیش اومده
https://paste.ubuntu.ir/klwd (https://paste.ubuntu.ir/klwd)
یک توصیه: کتابی که دارید مطالعه میکنید به python2 نوشته شده. اگر قصد دارید pyhton 3 را یاد بگیرید کتاب را تغییر دهید. بسیاری از ایرادات شما به تفاوت syntax بین python 2 و pytho 3 بازمیگردد.
کد اصلاح شده برای python 3:
def func(x):
print ('x is',x)
x = 2
print ('changed local x to',x)
x = 50
func(x)
print ('x is still',x)
-
تشکر از پست شما
-
دوستان یه کتاب اموزشی پایتون 3.3 رو میخاستم و هر چی تو اینترنت گشتم پیدا نکردم اگه کسی کتاب پایتون 3.3 رو لینک دانلودشو میدونه بگه لطفا
-
سلام
ببین این به کارت میاد :D
http://www.it-ebooks.info/book/2334/ (http://www.it-ebooks.info/book/2334/)
-
بهترین و جامعترین آموزش پایتون ۳
https://docs.python.org/3/tutorial/index.html
-
دوستان لینکی که گذاشته اید هردو اینگلیسیه من اینگلیسی بلد نیستم
-
خب پس قبلش باید انگلیسی یاد بگیری، چون زبانهای برنامهنویسی، مخصوصاً پایتون، وابستگی زیادی به انگلیسی دارند.
-
زبان رو کلاس های اول و دوم راهنمایی درس میدن و من ت یه حدی بلدم
-
زبان رو کلاس های اول و دوم راهنمایی درس میدن و من ت یه حدی بلدم
زبان مدرسه به درد امتحانات خودش می خوره