انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: su در 21 خرداد 1395، 06:53 بظ
-
سلام من تازه می خوام برنامه نویسی یاد بگیرم و میخوام پایتون یاد بگیرم.
اکثرا سوالام رو گوگل می کنم و جواباشون جست می کنم و لی بعضی وقتا جواباشون نمی یابم میخوام اینجا بپرسم.
یکی دوباری هم تو stackoverflow پرسیدم چون سوالام احمقانه بود بهم منفی دادم کلا گند میزنن به انگیزه آدم.
-
سوال اولم اینه
چطو مثلا عدد 3.14 رو بکنم
314 * 10**(-2)
سوال دومم درباره دستور اینپوت و راهی که بشه نیاز به زدن کلید اینتر نباشه؟
http://forum.ubuntu.ir/index.php/topic,135676.msg1083271.html#msg1083271
-
سوال اولم اینه
چطو مثلا عدد 3.14 رو بکنم
314 * 10**(-2)
خب سوال اولت را که متوجه نشدم :D
-
سوال اولم اینه
چطو مثلا عدد 3.14 رو بکنم
314 * 10**(-2)
خب سوال اولت را که متوجه نشدم :D
میخوام یه فلوت رو تبدیل به یه اینتیجر ضرب در ده به توان منفی یچیزی بکنم.
مثلا
3.14 برابر است با 314 ضرب در ده به توان منفی دو
-
منظورت اینه؟
>>> 314*10**-2
3.14
اگه دنبال عدد پی هستی البته این روش درست نیست و باید از کتابخونهٔ math استفاده کنی
>>> import math
>>> math.pi
3.141592653589793
-
منظورت اینه؟
>>> 314*10**-2
3.14
اگه دنبال عدد پی هستی البته این روش درست نیست و باید از کتابخونهٔ math استفاده کنی
>>> import math
>>> math.pi
3.141592653589793
نه منظورم اینه مثلا یه فانکشنی باشه که عدد اعشاری رو بگیره به یه نحوی به صورت یه عدد صحیح و یه ضریب منفی ده بدش.
مثلا
method(3.14)=[314,2]
یا به هر نحوی.
خوذم با
fractions.Fraction
درست میکنم گفتم شاید یه چیزی باشه من بلد نباشم
-
خب اون توابع را هم یه انسان مینویسه شما میای یه فایل که توش یه سری کلاس هست import میکنی به عنوان کتابخونه بعد ازشون استفاده میکنی!
خودت بشین بنویس, اینطوری:
#!/usr/bin/python3
class pi:
def __init__(self, num):
self.num = num
print(int(num)*-10)
c = pi(3.14)
c
خروجی:
runfile('/home/hossein/Prog/test.py', wdir='/home/hossein/Prog')
-30
اون اسکریپت یه عدد را تبدیل به int میکنه و بعد به منفی 10 ضربش میکنه!
-
خب اون توابع را هم یه انسان مینویسه شما میای یه فایل که توش یه سری کلاس هست import میکنی به عنوان کتابخونه بعد ازشون استفاده میکنی!
خودت بشین بنویس, اینطوری:
#!/usr/bin/python3
class pi:
def __init__(self, num):
self.num = num
print(int(num)*-10)
c = pi(3.14)
c
خروجی:
runfile('/home/hossein/Prog/test.py', wdir='/home/hossein/Prog')
-30
اون اسکریپت یه عدد را تبدیل به int میکنه و بعد به منفی 10 ضربش میکنه!
اتفاقا چون دارم یاد میگییرم همین کارارو میکنم و خودم می نویسم . ولی میخوام راه درست درمون واقعی شونم بدونم
(http://axbabak.ir/uploads/camyfirstpyclass2.png) (http://axbabak.ir/)
-
هر راهی که تو را به جواب برسونه توی برنامه نویسی راه درست درمون حساب میشه ;)
بگذریم چه IDE خوبی از کجا آوردیش؟ اسمش چیه؟ ;D عه! این کانفیگ i3wm منه؟ ;D
-
هر راهی که تو را به جواب برسونه توی برنامه نویسی راه درست درمون حساب میشه ;)
بگذریم چه IDE خوبی از کجا آوردیش؟ اسمش چیه؟ ;D عه! این کانفیگ i3wm منه؟ ;D
قانون اول پایتون : به حل یه مساله یه راه و ترجیحا فقط یه راه وجود داره.
yaourt -s pycharm
بلی کانفیگ خودته.
-
قانون اول پایتون : به حل یه مساله یه راه و ترجیحا فقط یه راه وجود داره.
کی گفته این رو ؟
-
قانون اول پایتون : به حل یه مساله یه راه و ترجیحا فقط یه راه وجود داره.
کی گفته این رو ؟
(http://axbabak.ir/uploads/69salamdonya-3.png) (http://axbabak.ir/)
-
هر راهی که تو را به جواب برسونه توی برنامه نویسی راه درست درمون حساب میشه ;)
بگذریم چه IDE خوبی از کجا آوردیش؟ اسمش چیه؟ ;D عه! این کانفیگ i3wm منه؟ ;D
قانون اول پایتون : به حل یه مساله یه راه و ترجیحا فقط یه راه وجود داره.
yaourt -s pycharm
بلی کانفیگ خودته.
مرگ بر جاوا, پایچارم, محصولات جت برینز :|
اون قانون چرتی هست اصلا هم برام مهم نیست از کجا اومده :)
-
این جمله یه جوری بازی با حرف لری وال (پرل) هست که میگه:
https://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it
و از اینجا اومده:
https://wiki.python.org/moin/TOOWTDI
و الزما تو برنامه نویسی چیزی که فقط کار کنه صحیح نیست ;)
این دو تا رو ببین شاید برات جالب باشه:
https://stackoverflow.com/questions/6913532/display-a-decimal-in-scientific-notation
https://python-reference.readthedocs.io/en/latest/docs/float/scientific.html
-
این جمله یه جوری بازی با حرف لری وال (پرل) هست که میگه:
https://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it
و از اینجا اومده:
https://wiki.python.org/moin/TOOWTDI
و الزما تو برنامه نویسی چیزی که فقط کار کنه صحیح نیست ;)
این دو تا رو ببین شاید برات جالب باشه:
https://stackoverflow.com/questions/6913532/display-a-decimal-in-scientific-notation
https://python-reference.readthedocs.io/en/latest/docs/float/scientific.html
https://en.wikipedia.org/wiki/Zen_of_Python
There should be one— and preferably only one —obvious way to do it.
-
https://en.wikipedia.org/wiki/Zen_of_Python
There should be one— and preferably only one —obvious way to do it.
آره و Origin اش اونجایی هست که گفتم...
مواردی که گذاشتم رو چک کردی؟
-
https://en.wikipedia.org/wiki/Zen_of_Python
There should be one— and preferably only one —obvious way to do it.
آره و Origin اش اونجایی هست که گفتم...
مواردی که گذاشتم رو چک کردی؟
بلی اینم اون نیست. این اومده به حالت ریاضی استانداردش کرده.وی فک کنم یه روش ساده به ذهنم رسید.فقط باید تعداد کاراکترهای بعد . اعشار رو بشمره.چطور این کار رو باید بکنم؟
مثلا 3.14
دو کاراکتر بعد . داره. چطور تو پایتون باید بشمرمشون ؟
یعنی بگم تعداد کاراکترهای بعد . رو بشمر
-
موقعیت نقطه توی عدد رو پیدا کن و موقعیت اون رو از طول رشته کم کن و -۱ هم بکن!
۴-۱-۱ = ۲
-
موقعیت نقطه توی عدد رو پیدا کن و موقعیت اون رو از طول رشته کم کن و -۱ هم بکن!
۴-۱-۱ = ۲
>>> a=3.14
>>> a
3.14
>>> str(a).replace(^.,"")
File "<stdin>", line 1
str(a).replace(^.,"")
^
SyntaxError: invalid syntax
جواب نداد
-
از توابع جزء صحیح math.floor ویا سقف math.ceil استفاده کنید
-
>>> a = 3.14
>>> b = str(a)
>>> b
'3.14'
>>> pos = b.find('.')
>>> pos
1
>>> count = len(b)-pos-1
>>> count
2
replace این وسط چیکاره هست؟
-
>>> a = 3.14
>>> b = str(a)
>>> b
'3.14'
>>> pos = b.find('.')
>>> pos
1
>>> count = len(b)-pos-1
>>> count
2
replace این وسط چیکاره هست؟
قربون جدت بشم . هلم دادی روووشن شدم
>>> a=3.14
>>> b=str(a).split(".")
>>> b
['3', '14']
>>> c=len(str(b[1])
... )
>>> c
2
>>> d=str(a).replace(".","")
>>> d
'314'
>>> print (d,"* 10 ** -",c,sep="")
314* 10 ** -2
>>>
-
>>> a = 3.14
>>> b = str(a)
>>> b
'3.14'
>>> pos = b.find('.')
>>> pos
1
>>> count = len(b)-pos-1
>>> count
2
replace این وسط چیکاره هست؟
میخواستم بگم از اول رشته تا جایی می رسی به . رو پاک کن. که به حمدلله نشد:دی. نمیدونم چطو باید پاک کنم
-
>>> number = 3.14
>>> str(number-int(number))[2:]
'14'
این هم یه روش برای بدست آوردن فقط بعد از ممیز، که از توی stackoverflow یافتم
-
>>> number = 3.14
>>> str(number-int(number))[2:]
'14'
این هم یه روش برای بدست آوردن فقط بعد از ممیز، که از توی stackoverflow یافتم
https://twitter.com/sae13/status/741260457248489472
سوال بعدی درباره ریپلیس. چطو بگم از اول رشته پاک کن تا زمانی که میرسی به یه کاراکتر خاص؟ تو ای مثال "." بود اون کاراکتر
-
حتما باید با replace باشه؟
در همون مثال نقطه می تونی موقعیت نقطه رو پیدا کنی (مثلا ۱) و از نقطه به بعد رو بریزی توی یه متغیر دیگه (یا همون متغیر)
>>> number = 3.14
>>> strNum = str(number)
>>> end = strNum[strNum.find('.'):]
>>> end
'.14'
-
حتما باید با replace باشه؟
در همون مثال نقطه می تونی موقعیت نقطه رو پیدا کنی (مثلا ۱) و از نقطه به بعد رو بریزی توی یه متغیر دیگه
>>> number = 3.14
>>> strNum = str(number)
>>> end = strNum[strNum.find('.'):]
>>> end
'.14'
یا میتونم اسپلیت کنم و ارایه اول حذف کنم. ولی دستوری مثل بش نداریم که خودش ای کار بکنه؟
تو بش با sed نمینویسیم ^. یعنی از اول تا نقطه یا .% یعنی از نقطه تا آخر رو پاک کن؟
-
حتما باید با replace باشه؟
در همون مثال نقطه می تونی موقعیت نقطه رو پیدا کنی (مثلا ۱) و از نقطه به بعد رو بریزی توی یه متغیر دیگه
>>> number = 3.14
>>> strNum = str(number)
>>> end = strNum[strNum.find('.'):]
>>> end
'.14'
یا میتونم اسپلیت کنم و ارایه اول حذف کنم. ولی دستوری مثل بش نداریم که خودش ای کار بکنه؟
تو بش با sed نمینویسیم ^. یعنی از اول تا نقطه یا .% یعنی از نقطه تا آخر رو پاک کن؟
یافتم یافتم
>>> a=3.1415161718
>>> re.sub(r'^.*\.','',str(a))
'1415161718'
http://www.tutorialspoint.com/python/python_reg_expressions.htm
-
چطور یک رشته بعد از یک زیررشتهٔ خاص (کارکتر) رو بگیرم؟
STFW
text = 'Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large.'
text.split('.', 1)[-1]
=> '. You start with a small trivial project, and you should never expect it to get large.'
http://stackoverflow.com/a/904756
-
دستور اینپوت همیشه آخرش یه اینتر میخواد.
تو پایتون۳ چطور یه اینپوت بگیرم که نیاز به اینتر نداشته باشه؟Please press a key for continue
گوگل کردم راهی نوشته بودن فقط تو ویندوز جواب میده \\:D/
-
دستور اینپوت همیشه آخرش یه اینتر میخواد.
تو پایتون۳ چطور یه اینپوت بگیرم که نیاز به اینتر نداشته باشه؟Please press a key for continue
گوگل کردم راهی نوشته بودن فقط تو ویندوز جواب میده \\:D/
من ورودی میگیرم بدون اینکه اون پیام را برام بده, میشه یه عکس بدی؟! ???
-
دستور اینپوت همیشه آخرش یه اینتر میخواد.
تو پایتون۳ چطور یه اینپوت بگیرم که نیاز به اینتر نداشته باشه؟Please press a key for continue
گوگل کردم راهی نوشته بودن فقط تو ویندوز جواب میده \\:D/
من ورودی میگیرم بدون اینکه اون پیام را برام بده, میشه یه عکس بدی؟! ???
منظورم نگرفتی
حالت عادی باید اینتر بزنی
m=inputu("please enter a key")
ولی من میخوام نیاز به زدن اینتر نباشه.مثلا به ایتپوت هر کلیدی زدم بدون زدن اینتر ادامه بده و بره خط بعدی برنامه رو اجرا کنه
-
سوال سه PyQt برا ساختن واسط کاربریه؟
-
سوال سه PyQt برا ساختن واسط کاربریه؟
آره, سهتا فریم ورک PyQT, PYGTK و PyGobject برای طراحی پوسته هستند!
-
سوال سه PyQt برا ساختن واسط کاربریه؟
آره, سهتا فریم ورک PyQT, PYGTK و PyGobject برای طراحی پوسته هستند!
کدوم یکی برا شروع یادگیری ساده ترن؟
-
اون PyGTK را که خدا بیامرزه! ولی از بین کیوت و GTK من GTK را ترجیح میدم که میشه PyGobject!
-
من Pyotherside رو ترجیح میدم به همهشون
-
من Pyotherside رو ترجیح میدم به همهشون
هیچ کدوم چیزی مث ویژوال استودیو یا کیو تی دیزاینر ندارن که بشه دراگ اند دراپ کنی ؟
-
اقا میخوام یاد بگیرم رابط کاربری گرافیکی درست کنم. دهنم سرویسیده شده.
از صبح نشستم با کلی گوگل تونستم همچین چیز زشتی بکشم.
http://n0n.ir/84033112
هییییییی ویژوال استودیو کجایی:دی.
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self,title="PyMovie")
self.set_size_request(500,200)
# self.add(grid)
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
print(dir(vbox.props))
self.add(vbox)
self.linkUrl = Gtk.Entry()
# create a horizontal box to pack the entry and a label
# self.linkUrl.set_text("http://dl11.imovie-dl.in/Serial/"
# "Game-Of-Thrones/S06/480p-HDTV/")
vbox.pack_start(self.linkUrl, True, True, 0)
self.text = self.linkUrl.get_text()
vbox.pack_end(self.linkUrl,True,True,0)
# hbox = Gtk.Box(spacing=6)
# vbox.pack_start(hbox, True, True, 0)
hbox=Gtk.Box(spacing=6)
vbox.pack_start(hbox, True, True, 0)
self.passwordimovie = Gtk.Entry()
self.passwordimovie.set_text("password")
self.passwordimovie.set_visibility(False)
hbox.pack_start(self.passwordimovie, True, True, 1)
self.userMovie = Gtk.Entry()
self.userMovie.set_text("user")
hbox.pack_start(self.userMovie, True, True, 1)
hbox2 = Gtk.Box(spacing=6)
vbox.pack_start(hbox2, True, True, 0)
button = Gtk.Button.new_with_label("Click Me")
button.connect("clicked", self.on_click_me_clicked)
hbox2.pack_start(button, True, True, 0)
def on_click_me_clicked(self, button):
print(self.text)
win = MyWindow()
win.connect("delete-event",Gtk.main_quit)
win.show_all()
Gtk.main()
سوالم مال اون فانکشن on_click_me یه.
چرا تکستی که توی باکس اون بالا مینویسم رو نشون نمیده؟
حل شد مشکل
def on_click_me_clicked(self, button):
self.text = self.linkUrl.get_text()
print(self.text)
[/color][/size]
-
اون PyGTK را که خدا بیامرزه! ولی از بین کیوت و GTK من GTK را ترجیح میدم که میشه PyGobject!
چظوری اندازه باتونام مشخص کنم؟ همش زشتن
http://n0n.ir/84033112
-
هیچ کدوم چیزی مث ویژوال استودیو یا کیو تی دیزاینر ندارن که بشه دراگ اند دراپ کنی ؟
چرا. Qtcreator داره. ولی خودت کد بزنی راحتتره که!
-
هیچ کدوم چیزی مث ویژوال استودیو یا کیو تی دیزاینر ندارن که بشه دراگ اند دراپ کنی ؟
چرا. Qtcreator داره. ولی خودت کد بزنی راحتتره که!
یعنی این:
https://code.google.com/archive/p/qt-creator-python/
بابا من تازه کارم
-
نه. اگه اوبونتو داری این رو بزن:
$ sudo apt install ubuntu-sdk
-
نه. اگه اوبونتو داری این رو بزن:
$ sudo apt install ubuntu-sdk
نه آرچ دارم.
برا پایتونه ؟
-
خب پس qtcreator رو نصب کن. نه، برای کیوته! با qml رابط کاربری رو میسازی و با پایتون بکاندش رو مینویسی.
-
خب پس qtcreator رو نصب کن. نه، برای کیوته! با qml رابط کاربری رو میسازی و با پایتون بکاندش رو مینویسی.
با تشکر
-
اون PyGTK را که خدا بیامرزه! ولی از بین کیوت و GTK من GTK را ترجیح میدم که میشه PyGobject!
چرا کلید select all من کار نمیکنه؟ و همه لیست انخاب نمیکنه؟
import gi # GObject UI Generator for Python
import requests # for get site html content
import bs4 # for process html content for finding film
# http://dl11.imovie-dl.in/Serial/Game-Of-Thrones/S01/480p-HDTV/
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject
# fetch url links
def links(url):
__url = str(url) # find_dl_url()
__page = requests.get(__url)
__page_content = bs4.BeautifulSoup(__page.content)
__links = __page_content.select('a[href*=".mkv"]')
__dict = {}
__sorted_dict = {}
__list = []
for x in __links:
__dict[x.string] = x.get('href')
__list.append(x.string)
__list = sorted(__list)
return __list, __dict
#this is for list box and at the moment i have no idea what this shit is
class ListBoxRowWithData(Gtk.ListBoxRow):
def __init__(self, data):
super(Gtk.ListBoxRow, self).__init__()
self.data = data
self.add(Gtk.Label(data))
class linkswindow(Gtk.Window): # cooose wich links needs to download
def __init__(self,list0,dict0):
Gtk.Window.__init__(self, title="Choose links")
self.set_size_request(100, 50)
box_outer = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
self.add(box_outer)
__list = list0
__dict = dict0
# print(__list,__dict)
# ######choose what episode u wanna download:###
self.listbox = Gtk.ListBox()
for items in __list:
self.listbox.add(ListBoxRowWithData(items))
self.listbox.connect('row-activated',lambda widget, row:print(row.data))
box_outer.pack_start(self.listbox, True, True, 0)
self.listbox.set_selection_mode(3)
self.listbox.show_all()
# buttun stuff
vbox = Gtk.Box()
box_outer.pack_start(vbox, True, True, 0)
# self.add(self.vbox)
select_all_button =Gtk.Button(label="Select All")
select_all_button.connect("clicked", self.on_select_all_clicked)
vbox.pack_start(select_all_button,True, True,0)
select_none_button =Gtk.Button(label="Select None")
select_none_button.connect("clicked", self.on_select_none_clicked)
vbox.pack_start(select_none_button,True, True, 0)
exit_button= Gtk.Button(label="Exit")
exit_button.connect("clicked", self.on_exit_clicked)
vbox.pack_start(exit_button, True, True, 0)
def on_select_all_clicked(self,button):
self.listbox.do_select_all()
def on_select_none_clicked(self, button):
self.listbox.do_unselect_all(1)
def on_exit_clicked(self, button):
exit()
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="PyMovie")
self.set_size_request(100, 10)
self.set_border_width(10)
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
# print(dir(vbox.props)) # shows commands can use for object
self.add(vbox)
self.linkUrl = Gtk.Entry()
vbox.pack_start(self.linkUrl, True, True, 0)
vbox.pack_end(self.linkUrl, True, True, 0)
# hbox = Gtk.Box(spacing=6)
# vbox.pack_start(hbox, True, True, 0)
hbox = Gtk.Box(spacing=6)
vbox.pack_start(hbox, True, True, 0)
self.passwordimovie = Gtk.Entry()
self.passwordimovie.set_text("password")
self.passwordimovie.set_visibility(False)
hbox.pack_start(self.passwordimovie, True, True, 1)
self.userMovie = Gtk.Entry()
self.userMovie.set_text("user")
hbox.pack_start(self.userMovie, True, True, 1)
hbox2 = Gtk.Box(spacing=6)
vbox.pack_start(hbox2, True, True, 0)
button = Gtk.Button.new_with_label("Click Me")
button.connect("clicked", self.on_click_me_clicked)
hbox2.pack_start(button, True, True, 0)
button.set_border_width(10)
######## exit button
exitbutton = Gtk.Button.new_with_label("exit")
exitbutton.connect("clicked", self.on_exit_clicked)
hbox2.pack_start(exitbutton, True, True, 0)
############### end exit button
def on_click_me_clicked(self, button):
self.link = self.linkUrl.get_text()
self.userName = self.userMovie.get_text()
self.userPass = self.passwordimovie.get_text()
lst,dct = links(self.link)
# print(lst , dct)
winlink = linkswindow(lst , dct)
winlink.connect("delete-event", Gtk.main_quit)
winlink.show_all()
Gtk.main()
########## on exit click method
def on_exit_clicked(self, button):
print("1")
exit()
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
داکیومنتش ایجاس
http://13x.ir/B2
ولی من هیچ چی ازش نمیفهمم.