Τα πάντα για την Python

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 08 Νοέμ 2011, 01:58

Γιατί δεν επεξεργάζεσαι κατευθείαν το QString?
Κώδικας: Επιλογή όλων

IPython 0.11 -- An enhanced Interactive Python.

In [1]: from __future__ import unicode_literals
In [2]: from PyQt4.QtCore import QString
In [3]: t = QString("Mία φράση.")
In [4]: t += " Και άλλη μία φράση."
In [5]: print t.toUtf8()
Μία φράση. Και άλλη μία φράση
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 08 Νοέμ 2011, 02:20

Σωστός, με τόσες δοκιμές μου ξέφυγε.
Αλλά μετά πάλι πρέπει να το μετατρέψω σε QByteArray και μετά σε str.
Anyway, το πρόβλημα λύθηκε απλώς έκανα ακόμα μια σύγκριση σε python 2 και 3.
Στην 3 ευτυχώς, ούτε το πρώτο import χρειάζεται να κάνεις. Ο διάλογος επιστρέφει κατευθείαν str αντί για QString!

Edit: Τελικά όντως χρειάζεται και η μετατροπή σε unicode καθώς την ίδια συμβολοσειρά την περνάω σε os.path.split() η οποία ζητάει unicode!
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 11 Νοέμ 2011, 22:07

να ρωτήσω , άμα θέλω να τρέξω μια εντολή με sudo μέσα σε ένα script πως μπορώ να βάλω να πετάει παράθυρο για να βάζω εκεί τον κωδικό; δηλαδή όχι απο τερματικό..
πρέπει να μάθω pygtk;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 12 Νοέμ 2011, 01:11

clepto έγραψε:να ρωτήσω , άμα θέλω να τρέξω μια εντολή με sudo μέσα σε ένα script πως μπορώ να βάλω να πετάει παράθυρο για να βάζω εκεί τον κωδικό; δηλαδή όχι απο τερματικό..
πρέπει να μάθω pygtk;

Αφού το script θα τρέχει από τερματικό γιατί να τον ζητάς τον κωδικό στο γραφικό περιβάλλον; Αν θες ντε και καλά να το κάνεις γραφικά μπορείς να το κάνεις με οποιαδήποτε βιβλιοθήκη και με Tkinter αν θες που είναι στην standard library...
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 19 Νοέμ 2011, 17:30

έχω μια απορία εδώ και καιρό :P
που μας βοηθάει μια κλάση; για μπορούμε να καλούμε συγκεκριμένα κομμάτια κάποιας συνάρτησης;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 19 Νοέμ 2011, 17:38

clepto έγραψε:έχω μια απορία εδώ και καιρό :P
που μας βοηθάει μια κλάση; για μπορούμε να καλούμε συγκεκριμένα κομμάτια κάποιας συνάρτησης;

Διάβασε πρώτα τη θεωρία και δες μερικά παραδείγματα: http://www.swaroopch.com/notes/Python_el:Αντικειμενοστρεφής_προγραμματισμός
Δες αυτό το πολύ επεξηγηματικό ποστ επίσης: http://forum.ubuntu-gr.org/viewtopic.php?p=64377#p64377
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 19 Νοέμ 2011, 17:48

ψιλοκατάλαβα...
θα δούμε και στην πράξη....
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 20 Νοέμ 2011, 23:26

Κώδικας: Επιλογή όλων
#!/usr/bin/env python

import sys
from math import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class Form(QDialog):

def __init__(self, parent=None):
super(Form, self).__init__(parent)

principalLabel = QLabel("speed")
self.speed = QLineEdit(" ")
self.speed.selectAll()
rateLabel = QLabel("position")
self.position = QLineEdit(" ")
self.position.selectAll()
timeLabel = QLabel("time: ")
self.time = QLineEdit(" ")
self.resultLabel = QLabel()
okButton = QPushButton("OK")

grid = QGridLayout()
grid.addWidget(principalLabel, 0, 0)
grid.addWidget(self.speed, 0, 1)
grid.addWidget(rateLabel, 1, 0)
grid.addWidget(self.position, 1, 1)
grid.addWidget(timeLabel, 2, 0)
grid.addWidget(self.time, 2, 1)
grid.addWidget(self.resultLabel, 3, 0)
grid.addWidget(okButton, 3, 1)
self.setLayout(grid)

self.connect(self.okButton,
SIGNAL("clicked()"), self.calculate)

self.setWindowTitle("Physic")

def calculate:
speed = self.speed.text()
position = self.position.text()
time = self.time.text()
if self.speed == " ":
result = position / time
elif self.position == " ":
result = speed * time
elif self.time == " ":
result = position / speed
self.resultLabel.setText(" " % result)

app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()


γιατί μου βγάζει
Κώδικας: Επιλογή όλων
File "physic.pyw", line 16
rateLabel = QLabel("position")
^
TabError: inconsistent use of tabs and spaces in indentation

1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 20 Νοέμ 2011, 23:31

Το λέει ξεκάθαρα στο Error.
Έχεις μπερδέψει τη στοίχιση. Ή tabs ή spaces θα χρησιμοποιείς και πάντα στο ίδιο μήκος.
Δεν μπορείς να γράψεις κάτι τέτοιο:
Κώδικας: Επιλογή όλων

if True:
print 'True'
else:
print 'False'


Edit: Δες και κάτω στη σελίδα που λέει Εσοχή κώδικα (Indentation) : http://www.swaroopch.com/notes/Python_e ... E%BA%CE%AC
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 20 Νοέμ 2011, 23:43

το ξέρω για το κενά...το geany εφταιγε, δεν μου το εδειχνε σωστα το αρχειο...
το ανοιξα με gedit και ειδα οτι αρκετες γραμμες δεν ηταν σωστα..
ορίστε:
Κώδικας: Επιλογή όλων
#!/usr/bin/env python

import sys
from math import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class Form(QDialog):

def __init__(self, parent=None):
super(Form, self).__init__(parent)

principalLabel = QLabel("speed")
self.speed = QLineEdit(" ")
self.speed.selectAll()
rateLabel = QLabel("position")
self.position = QLineEdit(" ")
self.position.selectAll()
timeLabel = QLabel("time: ")
self.time = QLineEdit(" ")
self.resultLabel = QLabel()
okButton = QPushButton("OK")

grid = QGridLayout()
grid.addWidget(principalLabel, 0, 0)
grid.addWidget(self.speed, 0, 1)
grid.addWidget(rateLabel, 1, 0)
grid.addWidget(self.position, 1, 1)
grid.addWidget(timeLabel, 2, 0)
grid.addWidget(self.time, 2, 1)
grid.addWidget(self.resultLabel, 3, 0)
grid.addWidget(okButton, 3, 1)
self.setLayout(grid)

self.connect(self.okButton,
SIGNAL("clicked()"), self.calculate)

self.setWindowTitle("Physic")

def calculate():
speed = self.speed.text()
position = self.position.text()
time = self.time.text()
if self.speed == " ":
result = position / time
elif self.position == " ":
result = speed * time
elif self.time == " ":
result = position / speed
self.resultLabel.setText(" " % result)

app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()

μου βγάζει όμως
Κώδικας: Επιλογή όλων
chris@chris-Aspire-5732Z:~/Επιφάνεια εργασίας$ ./physic.pyw
QWidget: Must construct a QApplication before a QPaintDevice
Ακυρώθηκε

έκανα αναζήτηση στο google και διάβασα αλλά δεν κατάλαβα που ακριβώς είναι το πρόβλημα
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι